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