在開發過程中對於集合的遍歷一般采用for循環,
但在循環中移除數據的時候for循環無法滿足該需求,
這時需要通過Iterator來實現循環中移除數據。
例如現在有這樣一個需求,一個集合(ArrayList)中有0-9 10個數據,需要移除其中的偶數。打印剩下的奇數。
通過for循環來操作將會寫出如下代碼:
方法1:
利用for循環獲得偶數
package com.hyhl.util; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ForList { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(10); for (int i = 0; i < 10; i++) { list.add(i); } List<Integer> shuList = new ArrayList<Integer>();
//新建一個偶數列表 shuList ,將list表中的所有偶數放入shuList表中 for(Integer shu:list){ if(shu%2==0){ shuList.add(shu); } }
//第二步,將list表中的shuList的數據移除,就得到需要的list for(Integer s:shuList){ list.remove(s); } for (int number : list) { System.out.println(number); } } }
方法2:
直接使用:Iterator來實現循環中移除數據,如下所示:
package com.hyhl.util; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ForIterator { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(10); for (int i = 0; i < 10; i++) { list.add(i); } for (Iterator<Integer> iterator = list.iterator(); iterator.hasNext();) { Integer val = iterator.next(); if (val % 2 == 0) { //是偶數的時候已移除某一項 iterator.remove(); } } for (int number : list) { System.out.println(number); } }
結論:Iterator比for循環有更強的適應性,特別是在循環中需要對數據進行刪除等操作時使用比較方便