標籤:nbsp pre 工作 方法 rgs 方式 元素 blog output
JAVA容器類類庫的用途為“儲存對象”,一種是Collection,一種就是Map。
但不論是哪種容器類,都必須有某種方式可以插入元素,並將它們取回!例如List中可以使用add()插入元素,get()用來取出元素。
但是容器類必須指定確切的類型,比如ArrayList<Interger>,但如果要使用Map/Set呢?如何提高代碼的複用率呢?
迭代器是一個對象,它的工作是遍曆並選擇序列中的對象。
- 使用iterator()要求容器返回一個Iterator。Iterator將返回序列中第一個元素。
- 使用next()方法獲得序列下一個元素。
- 使用hasNext()檢查序列是否還有元素。
- 使用remove()將迭代器新近返回的元素刪除。
1 public class MyIterator { 2 public static void main(String[] args) { 3 ArrayList<Integer> aList=new ArrayList<>(); 4 aList.add(2);aList.add(4);aList.add(1); 5 Iterator<Integer> it=aList.iterator(); 6 System.out.println("size="+aList.size());//輸出ArrayList原始大小 7 System.out.println(it.next());//利用迭代器輸出List第一個元素 8 it.remove();//刪除 9 System.out.println("size="+aList.size());//輸出刪除後List大小10 display(it);11 /*12 * 改為LinkedList13 * */14 System.out.println();15 LinkedList<Integer> ltd=new LinkedList<>();16 ltd.add(11);ltd.add(22);ltd.add(33);17 display(ltd.iterator());18 19 }20 public static void display(Iterator<Integer> its){21 while (its.hasNext()) {22 int n=its.next();23 System.out.print(n+" ");24 }25 }26 }
output:
size=32size=24 1 11 22 33
如的display()方法,不需要考慮容器的具體類型,是LinkedList還是ArrayList之類
同時display()方法不包含任何有關它所遍曆的序列的類型資訊
JAVA迭代器Iterator