使用for循环创建多个数组

时间:2016-10-14 15:13:24

标签: java arrays for-loop java.util.scanner

我想创建一个程序,用户可以输入变量的数量,并用特定值填充每个变量。例如,用户输入他/她想要制作10个数组,然后用户输入第一个数组应该有5个元素,而用户用值填充该数组,然后用户希望第二个数组有4个元素,并且相同等等。

这是我正在使用的代码,但它不起作用:

public static void main(String[] args){
    Scanner s = new Scanner(System.in);
    System.out.println("Enter the numbers of variables: ");
    int i = s.nextInt();

    for(int j = 0;j < i;j++){
        int[] var = new int[j];
        System.out.println("Enter the number of values: ");
        int p = s.nextInt();
        for(int q = 0;q < p;p++){
            int n = s.nextInt();
            var[q] = n;
        }
    }
}

我怎样才能比较用户输入的这些数组呢?

3 个答案:

答案 0 :(得分:1)

问题在于每次创建数组时。 试试这个:

Scanner s = new Scanner(System.in);
System.out.println("Enter the numbers of variables: ");
int i = s.nextInt();
int[][] var = new int[i][];
for(int j = 0;j < i;j++){

    System.out.println("Enter the number of values: ");
    int p = s.nextInt();
    var[j] = new int[p];
    for(int q = 0;q < p;p++){
        int n = s.nextInt();
        var[j][q] = n;
    }
}

您可以创建锯齿状数组,而不是创建一维数组。实质上,2d数组是一个数组数组。这样,用户输入数组的数量(i),然后继续填充数组。

要检查两个集合是否没有公共值,可以使用

Collections.disjoint();

对于其他操作,您可以查看here

答案 1 :(得分:0)

这应该有效(使用bidimensionnal数组)

for

你也必须在第二个循环中替换增量(&#34; q ++&#34;而不是&#34; p ++&#34;)

答案 2 :(得分:0)

这应该有效并解决他们的第一点

    Scanner s = new Scanner(System.in);
    System.out.println("Enter the numbers of variables: ");
    int i = s.nextInt();

    int[][] var = new int[i][];

    for(int j = 0;j < i;j++){
         System.out.println("Enter the number of values: ");
         int p = s.nextInt();
         while (p>0)
         {
            var[j] = new int[p];
            for(int q=0;q < p;q++){
               System.out.println("Value number : " +(q+1) + " For Array Number "+  (j+1));
               int n = s.nextInt();
               var[j][q] = n;
            }
             p-=1;
         }
    }