首先使用迭代器適用性強,因為如果用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());
}