【发布时间】:2012-03-03 10:32:47
【问题描述】:
目前我正在编写一个程序,该程序必须在一个看起来像这样的 for 循环中遍历数组列表。
List<Integer> currentLevel = new ArrayList<Integer>();
List<Integer> nextLevel = new ArrayList<Integer>();
Iterator<Integer> it = currentLevel.iterator();
currentLevel.add(1);
for(x=0;x<20;x++){
while(it.hasNext()){
int element = it.next();
nextLevel.add(element*2);
if(element%6 == 4){
nextLevel.add((element-1)/3);
}
}
currentLevel.clear();
currentLevel.addAll(nextLevel);
nextLevel.clear();
}
使用这段代码,它似乎只经过一次 while 循环。这是因为在第一个循环之后它只向 nextLevel 数组添加了一个数字,而 currentLevel 数组的索引数量与以前相同?或者它是我遗漏的东西?如果我尝试在 while 循环之后向 nextLevel 数组添加其他元素,则会在该行出现错误
int element = it.next();
【问题讨论】:
-
你想让这段代码做什么?不知道您要做什么,就不可能知道代码应该是什么样子。
-
我正在尝试为数学项目制作反向 Collatz 网络,如果您想查看一些代码,请查看此处stackoverflow.com/questions/9186198/…
-
等等,如果我只是在一个从 for 循环内部调用的不同方法中进行迭代,它会解决我的问题吗?
-
看起来,创建一个不同的方法来执行迭代并从 for 循环中调用它不会导致错误。