1. 程式人生 > >迭代器的學習筆記1

迭代器的學習筆記1

迭代器—不必知道序列底層是怎麼實現的,就可以利用迭代器來訪問一個序列。

任何容器類,都必須有某種方式可以插入元素並將它們再次取回。畢竟,持有事物是容器的最基本的工作。對於List,add()是插入元素的方法之一,而get()是取出元素的方法之一。

迭代器(也是一種設計模式)的概念可以幫助我們達到一種目的。什麼目的呢?能夠將遍歷序列的操作和序列底層相分離

迭代器是一個物件,它的工作是遍歷並選擇序列中的物件,而客戶端程式設計師不需要知道該序列底層的結構。此外,迭代器通常被稱為輕量級物件:建立它的代價小。因此,經常可以見到對迭代器有一些奇怪的限制;例如,java的Iterator只能單向移動,這個Iterator只能用來:

使用方法iterator()要求容器返回一個Iterator。Iterator將準備好返回序列的第一個元素;

使用next()獲取序列中下一個元素;

使用hasNext()檢查序列中是否有元素;

使用remove()將迭代器新返回的元素刪除。

—能夠將遍歷序列的操作和序列底層相分離。也正因為如此,我們有時會說:迭代器統一了對容器的訪問方式。

public class CrossContainerIteration {
    public static void display(Iterator<Pet> it) { 
        while(it.hasNext()) { 
            Pet p = it.next();
            System.out.print(p.id() + ":" + P + " ");
        }
    System.out.println();
    }
}