此代码继续返回0而不是增加大小?

时间:2011-10-18 22:12:12

标签: java arraylist

我想做的是:

提示用户输入列表大小(例如,N = 10,000)。以随机顺序创建从1到N的整数ArrayList。

这是我到目前为止所做的,但列表只返回0次

System.out.print("Please enter a list size: ");
       Scanner ST = new Scanner(System.in);
        int n= ST.nextInt();
        List<Integer> myList = new ArrayList<Integer>(n);
        for ( int i = 1; i<(n+1); i++){
            int k = 0;
            k = k + 1;
            myList.add(k);

        }

1 个答案:

答案 0 :(得分:7)

是的,因为您在循环中声明了k 。只需移动

int k = 0;
循环之前

。目前,“新声明的”变量将在循环的每次迭代的第一行被赋值为0;然后它会在下一行增加到1。然后将该值(1)装箱,并将返回值Integer.valueOf(1)添加到列表中。然后我们又回来了......

另一种方法是使用循环索引 - 可能同时将循环更改为更惯用的样式:

for (int i = 0; i < n; i++) {
    myList.add(i + 1);
}