【发布时间】:2013-10-31 07:49:25
【问题描述】:
当程序运行时,它输出 10 个随机数,每个数字存储到 LinkedList 列表中,然后显示此列表,仅显示 4-5 个数字,而不是原始数组中的 10 个。这是简单的代码:
import java.util.LinkedList;
import java.util.Random;
public class randomSum {
private static Random rand = new Random();
private static LinkedList<Integer> arr = new LinkedList<Integer>();
public static void main(String[] args) {
int num = 0;
System.out.println("Original List");
for(int i=0; i < 10; i++) {
num = rand.nextInt(1000);
arr.add(num);
System.out.println(num);
}
System.out.println("\nLinkedList List");
for(int j=0; j < arr.size(); j++)
System.out.println(arr.remove(j));
}
}
输出是这样的,这与我的预期不完全一样。他们都应该是一样的。为什么会这样?
Original List
693
239
33
999
862
965
994
884
127
977
LinkedList List
693
33
862
994
127
【问题讨论】:
-
System.out.println(arr.remove(j));你确定这是你想要的吗? -
在循环中更改列表会产生奇怪的结果。循环遍历列表时,您希望列表中的数据保持不变。至少在我能想到的每一种情况下......
-
好吧,我原本以为它会在删除每个元素之前打印每个元素。
标签: java arrays loops linked-list