2017-03-05 124 views
0

我想用随机数填充arrayList然后打印数组。但是,在执行程序时,我会遇到大量的错误。任何帮助,将不胜感激。用随机数填充ArrayList然后打印数组

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

你不可错过randomArray(这是一个java.util.ArrayList)到String.format()

您可能想改为通过randomArray.get(i)

+0

我认为这是我做错了开始。我得到了程序现在运行!谢谢您的帮助 :) – Art

0

this.capacity = capacity;添加到public methods() {构造函数开始。您正在引用此变量,但从未设置它。

+0

非常感谢帮助!我不再得到那个错误:) – Art