1. 程式人生 > >java類集——Interator

java類集——Interator

在集合的操作中支援一下幾種方式:
1.Interator
2.ListIterator
3.foreach
4.Enumeration
Interator介面簡介
集合輸出的標準操作:
在使用集合輸出的時候必須形成以下的一個思路:只要是碰到了集合輸出的操作,就一定使用Interator介面,因為這是最標準的做法
Interator介面的操作原理:
Interator是專門的迭代輸出介面,所謂的迭代輸出就是將元素一個個進行判斷,判斷其是否有內容,如果有內容則把內容取出。

對於Interator而言,因為其本身就是一個介面則必須依靠Collection介面完成。

使用Interator
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class InteratorDemo01 {
public static void main(String[] args) {
	List<String> all = new ArrayList<String>();
	all.add("hello");
	all.add("_");
	all.add("world");
	
	Iterator<String> iter = all.iterator();  //為Interator介面例項化
	while(iter.hasNext()) {    //判斷是否有內容
		System.out.println(iter.next());	//輸出內容
	}
	
}

}
以上的操作程式碼屬於Interator的標準做法。
在Interator介面中提供了remove()方法,此方法的功能是刪除當前的物件。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class InteratorDemo02 {
public static void main(String[] args) {
	List<String> all = new ArrayList<String>();
	all.add("hello");
	all.add("_");
	all.add("world");
	
	Iterator<String> iter = all.iterator();  //為Interator介面例項化
	while(iter.hasNext()) {		//判斷是否有內容
		String str = iter.next();
		if("_".equals(str)) {
			iter.remove();
		}else {
			System.out.println(str);	//輸出內容
		}
	}
	System.out.println("刪除之後的集合:" + all);
}

}
在實際中Interator是很少呼叫刪除操作的,因為其本身功能是輸出內容,當然,對於刪除操作也有以下的一個注意點:
List介面本身也有刪除方法:remove().
如果在使用迭代輸出的過程中使用了List中的remove()執行刪除操作,則程式碼將出現問題。

public class InteratorDemo03 {
public static void main(String[] args) {
	List<String> all = new ArrayList<String>();
	all.add("hello");
	all.add("_");
	all.add("world");
	
	Iterator<String> iter = all.iterator();  //為Interator介面例項化
	while(iter.hasNext()) {		//判斷是否有內容
		String str = iter.next();
		if("_".equals(str)) {
			all.remove(str);
		}else {
			System.out.println(str);	//輸出內容
		}
	}
	System.out.println("刪除之後的集合:" + all);
}

}
執行結果:
hello
刪除之後的集合:[hello, world]。
所以在使用Interator輸出時,不要使用集合類中的remove()方法,而只能使用Interator介面中的remove方法。

總結
1.Interator介面的功能是從前向後輸出,屬於單向輸出。
2.Interator的主要功能是就是完成迭代輸出操作的。
3.在使用Interator的時候最好不要刪除資料。