【聲明】本文參考自極客學院視頻
1、集合輸出的標準操作:
標準做法,使用 Iterator接口
2、操作原理:
Iterator是專門的迭代輸出接口,迭代輸出就是將元素一個個進行判斷,判斷是否有內容,如果有內容則把內容取出
其實是一個單向輸出的方式。
3、方法摘要:
boolean hasNext()
Returns true if the iteration has more elements.
E next()
Returns the next element in the iteration.
default void remove()
Removes from the underlying collection the last element returned by this iterator (optional operation).
package test01;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class test1 {
public static void main(String[] args) {
List<String> lists=new ArrayList<String>();
lists.add("A");
lists.add("B");
lists.add("C");
lists.add("D");
lists.add("E");
lists.add("F");
Iterator<String> iter=lists.iterator();
while (iter.hasNext()) {
System.out.println(iter.next());
}
}
}
package test01;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class test1 {
public static void main(String[] args) {
List<String> lists = new ArrayList<String>();
lists.add("A");
lists.add("B");
lists.add("C");
lists.add("D");
lists.add("E");
lists.add("F");
Iterator<String> iter = lists.iterator();
while (iter.hasNext()) {
String str = iter.next();
if ("A".equals(str)) {
iter.remove();
} else {
System.out.println(str);
}
}
}
}
Iterator的remove()和list、set等的remove()不同,在Iterator迭代輸出時不可以用容器的remove(),否則會發生如下異常:
Exception in thread “main” java.util.ConcurrentModificationException