我试图创建一个对象,该对象的大小由用户定义,但是只有一个数组输出,有没有办法在循环中创建数组?
public class Somehthing {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Scanner sc2 = new Scanner(System.in);
Random rnd = new Random();
System.out.println("How many array?:");
for (int j = 0; j <= sc.nextInt(); j++) {
System.out.println("Define array size:");
int[] dizi = new int[sc2.nextInt()];
for (int i = 0; i <= dizi.length - 1; i++) {
int deger = rnd.nextInt(1000000);
dizi[i] = deger;
System.out.println(array[j]);
}
}
}
}
答案 0 :(得分:0)
二维数组将起作用:
Scanner sc = new Scanner(System.in);
Random rnd= new Random();
System.out.println("How many array?:");
int[][] array = new int[sc.nextInt()][];
for(int j = 0; j < array.length; j++){
System.out.println("Define array size:");
array[j] = new int[sc.nextInt()];
for(int i = 0; i < array[j].length; i++){
array[j][i] = rnd.nextInt(1000000);
}
System.out.println(Arrays.toString(array[j]));
}
答案 1 :(得分:0)
我不确定我是否理解正确,但是如果您要创建 n 个数组,那么您要做的就是使用新的数据结构来保存数组;例如ArrayList
(您可以使用2D数组来存储信息,但是多维数组往往会变得非常复杂,非常快;这很简单。
因此,需要进行一些轻微的修改:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Scanner sc2 = new Scanner(System.in); //I don't understand why you used a second scanner
Random rnd= new Random();
ArrayList<Integer[]> arrays = new ArrayList<>(); //you must import java.utils.ArrayList;
System.out.println("How many array?:");
for(int j=0;j<=sc.nextInt();j++){
System.out.println("Define array size:");
Integer[] array = new int[sc2.nextInt()];
for(int i=0;i<=array.length-1;i++){
int value=rnd.nextInt(1000000);
array[i]= value;
System.out.println(array[j]);
}
arrays.add(array); //You are adding this array into your List of arrays.
}
}
请记住对列表使用包装类
Integer()
,原始类型将不起作用。如果您需要知道原因,请阅读 this堆栈溢出 回答或 this 泛型教程。
我没有花时间来优化您的代码,因为我只是尝试解决您的问题/问题。