java迭代器
在使用Arrays.asList()後呼叫add,remove這些method時出現java.lang.UnsupportedOperationException異常。這是由於Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是繼承AbstractList,remove,add等method在AbstractList中是預設throw UnsupportedOperationException而且不作任何操作。ArrayList override這些method來對list進行操作,但是Arrays$ArrayList沒有override remove(),add()等,所以throw UnsupportedOperationException。
import java.util.*;
public class ListFeatures {
public static void display(Iterator<String> it){
int i=0;
while(it.hasNext()){
System.out.print(i+++":"+it.next()+" ");
}
System.out.println();
}
public static Collection fill(Collection<String> a){
a.add("apple");
a.add("pear");
a.add("waterlemon");
a.add("草莓");
return a;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
display(fill(new ArrayList<String>()).iterator());
display(fill(new LinkedHashSet<String>()).iterator());
display(fill(new TreeSet<String>()).iterator());
}
}
相關文章
- 【java】【集合】迭代器IteratorJava
- 淺談Java迭代器Java
- Java基礎Iterator迭代器Java
- Java——深入瞭解Java中的迭代器Java
- Java 集合(2)之 Iterator 迭代器Java
- java基礎之:迭代器詳解Java
- 迭代器
- Python進階:迭代器與迭代器切片Python
- 16.java設計模式之迭代器模式Java設計模式
- TypeScript迭代器TypeScript
- Python 迭代器Python
- Iterator迭代器
- 迭代器 iterator
- Lua迭代器
- Python迭代器Python
- Ruby迭代器
- 迭代器模式模式
- 從迭代器模式到迭代協議模式協議
- 可迭代物件、迭代器、生成器物件
- Iterator與Iterable(迭代器與可迭代)
- Python可迭代的物件與迭代器Python物件
- java版 SpringCloud分散式微服務雲架構之Java Iterator(迭代器)JavaSpringGCCloud分散式微服務架構
- Java 包裝類:原始資料型別與迭代器Java資料型別
- Iterables和迭代器
- 迭代器的 ConcurrentModificationExceptionException
- 迭代器模式(Iterator)模式
- 23. 迭代器
- 迭代器總結
- javascript 之迭代器JavaScript
- 手寫自定義迭代器,秒懂迭代器底層原理
- Java中Iterator迭代器的next()方法的新手易錯點。Java
- 不用for迭代 --手工訪問迭代器中的元素.
- Python之可迭代物件、迭代器、生成器Python物件
- 三十四、java版 SpringCloud分散式微服務雲架構之Java Iterator(迭代器)JavaSpringGCCloud分散式微服務架構
- List分組迭代器
- 迭代器、生成器
- 協程與迭代器
- 迭代器,生成器
- C++之迭代器C++