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

问题描述:

我想要做的是:此代码继续返回0而不是增加大小?

提示用户输入列表大小(例如,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); 

     } 
+0

这一步我也需要帮助后将Collections.shuffle调用到列表上。我将如何创建声明来将Collections.shuffle调用到此列表中? –

+0

提示:就此,以及您之前的问题,当您获得正确/有用的示例时,请务必将其检查为已回答。 – Aurora

是的,因为你声明k循环。只是循环之前移动

int k = 0; 

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

另一种方法是只使用循环索引 - 可能改变环路到一个较为惯用的风格在同一时间:

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

谢谢!完成这一步之后,我还需要将Collections.shuffle调用到列表上。你知道我将如何创建声明来调用Collections.shuffle到这个列表中? –

+0

@KarthikPatil:这只是一个静态方法调用:'Collections.shuffle(myList);'。这是什么原因导致你麻烦? –