2016-05-05 3 views
0

私の主な方法で決めた特定の番号の出現数を計算したい。javaの配列の出現数を計算する

•乱数で配列を塗りつぶす関数です。

•発生回数を計算する関数で、この関数は入力または出力を行わない場合があります。

•ユーザーに番号を入力して結果を画面に表示するmain関数。ここで

は、Javaでの私のコードです:

import java.util.Random; 
import java.util.Scanner; 

public class Code { 

    public void calculate(int value) { 

     Code c = new Code(); 
     int count=0; 
     for (int n=0; n<array.length; n++) { // the code does not recognize array 
      if (array[n]==value) { // the code does not recognize array 
       count++; 
      } 
     } 
     System.out.println(count); 

    } 

    public void addToArray() { 

     int k =0; 
     int [] array = new int[10]; 
     int min=0; 
     int max=10; 
     int diff = max-min; 
     while (k<10) { 
     Random r = new Random(); 
     int x = r.nextInt(diff); 
     array[k]=x; 
     k=k+1; 
     } 


    } 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     System.out.println("give your number"); 
     Code c = new Code(); 
     Scanner s = new Scanner(System.in); 
     int value = s.nextInt(); 
     c.addToArray(); 
     c.calculate(value); 



    } 

} 

私は助けを必要と唯一のものは、計算方法です,,日食は、上記の計算方法で配列を認識しません。..

修正する方法配列を認識させるためのcalculateメソッド?

+2

パラメータでメソッドに渡します。 – csmckelvey

答えて

1

あなたarrayは方法addToArray()の範囲に限られているあなたに感謝します。したがって、他の方法では見えません。あなたはそれをグローバルにする必要があります。その後、それは動作します。

代わりの方法addToArrayで配列を宣言、のように、あなたのクラスでそれを宣言します。Java 8を使用している場合、あなたはこのようなあなたの計算Methodeのを更新することができ

public class Code { 
    int [] array = new int[10]; 
    ... 
+1

または、パラメータとしてメソッドに渡します。 – Thilo

+1

@Thiloはいできます。しかし、オブジェクト/変数が同じクラスの複数のメソッドによってアクセスされる場合は、それをインスタンス変数として宣言することをお勧めします。 – Hackerdarshi

+1

ありがとうございます HackerdarshiとThilo :) –

0

:追加することで

 public void calculate(int value) { 
      System.out.println(Arrays.stream(array) 
            .filter(i -> i == value) 
            .count()); 
     } 

これはあなたのクラスにインポートされます:

import java.util.Arrays; 

そして、属性配列をクラスのメンバとして宣言するDarshi