1.iterator简单用法
Iterator<TrackLoadUnloadListRespDTO> loadIterator = respList.iterator();
while (loadIterator.hasNext()) {
}
2.相比于普通和for循环,或者是增强for循环,迭代器可以在对集合遍历时做一些特殊的操作,比如需要遍历某个集合,往新的集合中添加元素,但是又想要排除一些特定的元素,这个时候就可以使用迭代器操作
List<TrackLoadUnloadListRespDTO> loadRespList = new ArrayList<>();
for (TrackLoadUnloadListRespDTO respDTO : resultDTOList) {
loadRespList .add(respDTO);
Iterator<TrackLoadUnloadListRespDTO> loadIterator = loadRespList .iterator();
while (loadIterator.hasNext()) {
TrackLoadUnloadListRespDTO loadRespDTO = loadIterator.next();
if ( ******* ) {
loadIterator.remove();
}
}
}
此时如果使用for循环或者增强for都会报并发修改异常
以上操作仅限于单线程的情况下,如果时多线程操作,则还是会报错
3.iterator的基本实现原理就是对集合的长度做判断,remove的时候对元素的长度进行了更新,感兴趣的小伙伴可以去了解一下源码,如果是正常循环一个集合,则使用for或者增强for会更好,iterator还是有比较多的局限性