我在Java中使用List集合,我使用迭代集合来处理已创建的整数值列表.
为什么这段代码会无限循环?
int i = 0;
int j = 0;
List<Integer> li = new ArrayList<Integer>();
for (i = 0; i < 10; i++) {
li.add(i);
}
do {
System.out.println(li.get(j));
} while(j < li.size());
Run Code Online (Sandbox Code Playgroud)
Kna*_*ģis 11
这是无限的,因为你永远不会改变j- 每次你读取第一个值时的值li.List<>当您阅读它们时,该集合不会删除项目.如果您需要这种行为,您应该寻找Stack或Queue收集.
do {
System.out.println(li.get(j));
j++; // you are missing this line
} while(j < li.size());
Run Code Online (Sandbox Code Playgroud)
该行while(j < li.size());检查值j是否小于List
因为j =0并且0<10 (Which is your List size)总是如此,因此代码永远不会终止并且您进入无限循环.你可能会做这样的事情
do {
System.out.println(li.get(j));
j++;
} while(j < li.size());
Run Code Online (Sandbox Code Playgroud)