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

1 java arraylist

我想要做的是:

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

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

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);

        }
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

是的,因为你在声明k 循环.只是移动

int k = 0;
Run Code Online (Sandbox Code Playgroud)

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

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

for (int i = 0; i < n; i++) {
    myList.add(i + 1);
}
Run Code Online (Sandbox Code Playgroud)