我依靠列表迭代器来浏览字符列表。这是一个单线程程序,我以4种不同的方法顺序使用listIterator对象。每种方法都有相同的设置:
renderAirplaneList() {
if (!this.props.airplanes.length) {
return null;
}
const arr = this.props.airplanes || [];
return arr.map(airplane => {
return (
<tr key={airplane.id}>
<td>{airplane.ID}</td>
<td>{airplane.term}</td>
<td>{airplane.actual}</td>
<td>{airplane["airportToID.city_en"]}</td>
</tr>
);
});
}
使用此模式,在第二个迭代器上,引发以下异常:
private void myMethod(ArrayList<Integer> input) {
ListIterator<Integer> i = input.listIterator();
while (i.hasnext()) {
Integer in = i.next();
if (in < 10)
i.remove();
else
i.set(in*in); // because its lucky
}
}
但是,在查看javadocs时,在抛出的Exceptions中我看不到此Exception,也没有看到完成后关闭迭代器的方法。我使用的listIterator错误吗?我必须多次遍历同一ArrayList,每次有条件地删除或更改每个元素。也许有更好的方法遍历ArrayList,而ListIterator不能最好地解决此用例。