迭代器(Iterator) 迭代器是一種設(shè)計(jì)模式,它是一個(gè)對(duì)象,它可以遍歷并選擇序列中的對(duì)象,而開發(fā)人員不需要了解該序列的底層結(jié)構(gòu)。迭代器通常被稱為“輕量級(jí)”對(duì)象,因?yàn)閯?chuàng)建它的代價(jià)小。 Java中的Iterator功能比較簡(jiǎn)單,并且只能單向移動(dòng): (1) 使用方法iterator()要求容器返回一個(gè)Iterator。第一次調(diào)用Iterator的next()方法時(shí),它返回序列的第一個(gè)元素。注意:iterator()方法是java.lang.Iterable接口,被Collection繼承。 (2) 使用next()獲得序列中的下一個(gè)元素。 (3) 使用hasNext()檢查序列中是否還有元素。 (4) 使用remove()將迭代器新返回的元素刪除。 Iterator是Java迭代器最簡(jiǎn)單的實(shí)現(xiàn),為L(zhǎng)ist設(shè)計(jì)的ListIterator具有更多的功能,它可以從兩個(gè)方向遍歷List,也可以從List中插入和刪除元素。
迭代器應(yīng)用: list l = new ArrayList(); l.add("aa"); l.add("bb"); l.add("cc"); for (Iterator iter = l.iterator(); iter.hasNext();) { String str = (String)iter.next(); System.out.println(str); } /*迭代器用于while循環(huán) Iterator iter = l.iterator(); while(iter.hasNext()){ String str = (String) iter.next(); System.out.println(str); } */
Iterator的接口定義:
public interface Iterator { boolean hasNext(); Object next(); void remove(); }
使用: Object next():返回迭代器剛越過(guò)的元素的引用,返回值是Object,需要強(qiáng)制轉(zhuǎn)換成自己需要的類型 boolean hasNext():判斷容器內(nèi)是否還有可供訪問的元素 void remove():刪除迭代器剛越過(guò)的元素 迭代使用方法:(迭代其實(shí)可以簡(jiǎn)單地理解為遍歷,是一個(gè)標(biāo)準(zhǔn)化遍歷各類容器里面的所有對(duì)象的方法類) for(Iterator it = c.iterator(); it.hasNext(); ) { Object o = it.next(); //do something }
|
|
來(lái)自: 生命隨時(shí)光流逝 > 《學(xué)習(xí)》