Java Iterator使我的应用程序冻结

时间:2015-06-27 00:32:50

标签: java

我正在通过一个列表来计算字体大小,我使用Iterator循环,因为一个简单的for循环导致程序因修改异常而冻结。但每次循环开始时,程序就会冻结,就像循环永远不会结束一样。

public Iterator<String> getIterator(ArrayList<String> obj) {
    return obj.iterator();
}
while(getIterator(output).hasNext()) {
    //calculation   
}

1 个答案:

答案 0 :(得分:2)

目前,您每次迭代都会重新创建迭代器。这会导致无限循环,因为新的迭代器总是有另一个项目。

你需要创建一个迭代器一次并调用next让它前进:

Iterator<String> iterator = getIterator(output);
while(iterator.hasNext()) {
    String string = iterator.next();
    //calculation   
}