2017-03-05 7 views
0

arrayListに乱数を加えて配列を出力したい。しかし、私はプログラムを実行すると膨大な数のエラーが発生します。どんな助けもありがとう。ArrayListに乱数を代入してからPrint Array

public class methods { 
//variables 
int capacity; 
private static ArrayList<Double> randomArray; 



public methods(int capacity) { 
    //default constructor to initalize variables and call populateArray to 
    //populate ArrayList with random numbers 
    randomArray = new ArrayList<>(capacity); 
    populateArray(); 
} 

//Method that populates Array with random numbers 
private void populateArray() 
{ 

    Random rand = new Random(); 

    for (int i=0; i<= capacity; i++) 
    { 
     double r = rand.nextInt() % 256; 

     randomArray.add(i,r); 

    } 

} 
//Get Array adds numbers to the string that is called in my main class and printed 
public String getArray() { 
String result = ""; 
for (int i=0; i<= capacity; i++) 
    { 
     result += String.format("%4d", randomArray); 

    } 
return result; 

} 

} 

//main 
public class Benchmarking { 


public static void main (String args[]){ 

Scanner scanner = new Scanner(System.in); 

    System.out.println("What is the capacity of your Array?"); 
    int capacity = scanner.nextInt(); 

    methods array1 = new methods(capacity); 
    System.out.println(array1.getArray()); 
} 

プログラムを実行して容量を入力すると、クラッシュします。 arrayListを作成するだけで乱数を設定して印刷する必要があります。私が受け取っているエラーのリストは以下の通りです:

Exception in thread "main" java.util.IllegalFormatConversionException: d != java.util.ArrayList 
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4302) 
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2793) 
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2747) 
at java.util.Formatter.format(Formatter.java:2520) 
at java.util.Formatter.format(Formatter.java:2455) 
at java.lang.String.format(String.java:2927) 
at Benchmarking.methods.getArray(methods.java:68) 
at Benchmarking.Benchmarking.main(Benchmarking.java:27) 

私は私の方法に根本的に何か間違っていると思います。

+1

表示されているエラーを知ることは役に立ちます。 – Jeremy

+0

ArrayListを%4dとしてフォーマットすることはできません。 '' String.format( "%4d"、randomArray.get(i)); 'という意味でしたか? –

答えて

0

randomArrayjava.util.ArrayList)をString.format()に渡すことはできません。

おそらくrandomArray.get(i)を渡したいと思うでしょう。

+0

私はそれが私が間違ってやっていたと思います。私は今実行するプログラムを持っている!助けてくれてありがとう :) – Art

0

public methods() {コンストラクタに追加してください。この変数を参照していますが、決して設定しません。

+0

多くのお手伝いをしてくれてありがとう!私はもはやそのエラーを取得していません:) – Art

関連する問題