首先使用迭代器适用性强,因为如果用for循环遍历,需要事先知道集合的数据结构,而且当换了一种集合的话代码不可重用要修改,不符合开闭原则。而Iterator是用同一种逻辑来遍历集合。其次使用Iterator可以在不了解集合内部数据结构的情况下直接遍历,这样可以使得集合内部的的数据不暴露。
for循环的遍历
ArrayList<Integer> list = new ArrayList<>();
for(int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}
迭代器遍历
Iterator it =list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}