閱讀434 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Java類集--Iterator接口、ListIterator接口、foreach及Enumeration接口

Iterator接口簡介:




import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class IteratorDemo01{
	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() ;	// 為Iterator接口實例化
		while(iter.hasNext()){	// 判斷是否有內容
			System.out.println(iter.next()) ;	// 輸出內容
		}
	}
};


import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class IteratorDemo02{
	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() ;	// 為Iterator接口實例化
		while(iter.hasNext()){	// 判斷是否有內容
			String str = iter.next() ;
			if("_".equals(str)){
				iter.remove() ;	// 刪除元素		
			}else{
				System.out.println(str) ;	// 輸出內容
			}
		}
		System.out.println("刪除之後的集合:" + all) ;
	}
};


import java.util.List ;
import java.util.ArrayList ;
import java.util.Iterator ;
public class IteratorDemo03{
	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() ;	// 為Iterator接口實例化
		while(iter.hasNext()){	// 判斷是否有內容
			String str = iter.next() ;
			if("_".equals(str)){
				all.remove(str) ;	// 刪除元素		
			}else{
				System.out.println(str) ;	// 輸出內容
			}
		}
		System.out.println("刪除之後的集合:" + all) ;
	}
};
在使用Iterator輸出時,不要使用集合類中的remove()方法,而隻能使用Iterator接口中的remove方法。

ListIterator接口:


雖然此接口可以進行雙向的輸出,但是遺憾的是Collection接口中並沒有定義可以為此類實例化的操作,隻有List接口中才存在了ListIterator接口的實例化操作。
例子:完成雙向輸出。
import java.util.ArrayList ;
import java.util.List ;
import java.util.ListIterator ;
public class ListIteratorDemo01{
	public static void main(String argsp[]){
		List<String> all = new ArrayList<String>() ;
		all.add("hello") ;
		all.add("_") ;
		all.add("world") ;
		ListIterator<String> iter = all.listIterator() ;
		System.out.print("由前向後輸出:") ;
		while(iter.hasNext()){
			String str = iter.next() ;
			System.out.print(str + "、") ;
		}
		System.out.print("\n由後向前輸出:") ;
		while(iter.hasPrevious()){
			String str = iter.previous() ;
			System.out.print(str + "、") ;
		}
	}
};


import java.util.ArrayList ;
import java.util.List ;
import java.util.ListIterator ;
public class ListIteratorDemo02{
	public static void main(String argsp[]){
		List<String> all = new ArrayList<String>() ;
		all.add("hello") ;
		all.add("_") ;
		all.add("world") ;
		ListIterator<String> iter = all.listIterator() ;
		System.out.print("由前向後輸出:") ;
		while(iter.hasNext()){
			String str = iter.next() ;
			System.out.print(str + "、") ;
			iter.set("LI - " + str) ;	// 修改內容
		}
		System.out.print("\n由後向前輸出:") ;
		iter.add("LXH");
		while(iter.hasPrevious()){
			String str = iter.previous() ;
			System.out.print(str + "、") ;
		}
	}
};

foreach對集合輸出的支持:

foreach可以輸出數組,實際上foreach語法中也同樣支持集合的輸出的操作。
import java.util.ArrayList; 
import java.util.List; 
public class ForeachDemo01{
	public static void main(String args[]){
		List<String> all = new ArrayList<String>() ;
		all.add("hello") ;
		all.add("_") ;
		all.add("world") ;
		for(String str:all){
			System.out.print(str + "、") ;
		}
	}
};

實際上Iterator屬於一個新的輸出接口,在最早的java剛出來的時候如果要想輸出,使用Enumeration接口完成輸出。
但是在java中因為存在發展的曆史問題,所以有些地方還會使用到Enumeration。
而且必須注意的是在使用Enumeration輸出的時候一般都是直接操作Vector類完成的。
import java.util.Vector; 
import java.util.Enumeration; 
public class EnumerationDemo01{
	public static void main(String args[]){
		Vector<String> all = new Vector<String>() ;
		all.add("hello") ;
		all.add("_") ;
		all.add("world") ;
		Enumeration<String> enu = all.elements() ;
		while(enu.hasMoreElements()){	//判斷是否有內容,hasNext()
			System.out.print(enu.nextElement() + "、") ;	// 輸出元素:next()
		}
	}
};


最後更新:2017-04-03 14:54:25

  上一篇:go rhel6 bind 啟動停頓 Generating /etc/rndc.key
  下一篇:go 手機衛士08-獲取手機聯係人