如何在Java中使用循环初始化数组?

5

我正在循环中将数组的大小存储在一个变量中。每次都需要将数组的大小赋值为该变量的值,然后取等于该大小的整数。例如:

for(i = 0; i < N; i++)
{
    variable = sc.nextInt();
    int []array = new int[variable];
    for(j = 0; j < variable; j++)
    {
        array[j] = sc.nextInt();
    }
}

因为我是 Java 新手,请给我提供最有效的方法 :)


为什么第一个循环是 for(i=0;i<N;i++) - Youcef LAIDANI
ArrayList够用吗? - Umar Farooq
6
“请提供我最有效的方法,因为我是Java的新手 :)” StackOverflow不是一个你发布问题然后得到代码的网站。如果您解释清楚目前实现的问题,我们可能能够给予帮助。 - Turing85
2
使用您发布的代码有什么问题吗? - Bill F
@Turing85,我并不是在寻求代码片段,而且我提到我是Java的新手是因为我想要最优方法。是的,StackOverflow是分享知识的网站。如果我的问题对你来说不清楚,请阅读我上面的评论! - Alfran
显示剩余12条评论
3个回答

1
你可以创建一个数组列表,在外部循环中初始化它们,并使用位置ij向数组添加值。
// initialize list with n, though you can also use 2D array as well
List<int[]> array = new ArrayList<>(n);

for (int i = 0; i < n; i++) { 
    variable = sc.nextInt();

    // create an array and add it to list
    array.add(new int[variable]);

    for (int j = 0; j < variable; j++) {
        // fetch the array and add values using index j
        array.get(i)[j] = sc.nextInt();
    }
}

1
也许你需要这样的东西:
List<int[]> list = new ArrayList<>();//create a list or arrays
for (int i = 0; i < n; i++) {

    int variable = sc.nextInt();
    int[] array = new int[variable];
    for (int j = 0; j < variable; j++) {
        array[j] = sc.nextInt();
    }

    list.add(array);//add your array to your list
}

-1
for(i=0;i<N;i++)
{
    variable = sc.nextInt();
    ArrayList array = new ArrayList(variable)
    for(j=0;j<variable;j++)
    {
        int input = sc.nextInt()
        array.add(input);
    }
}

如果使用ArrayList,我会这样做。

3
楼主要求数组初始化,因此这不是答案。 - Turing85

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接