迭代器
迭代器(也是一種設(shè)計(jì)模式)是一個(gè)對(duì)象,它的工作是遍并選擇序列中的對(duì)象员辩。迭代器通常被稱(chēng)作輕量級(jí)對(duì)象痛悯,創(chuàng)建它的代價(jià)小。Java的 Iterator只能單向移動(dòng)颖侄,這個(gè)Iterator只能用來(lái):
1.使用方法iterator()要求容器返回一個(gè)Iterator鸟雏。Iterator將準(zhǔn)備好返回序列的第一個(gè)元素。
2.使用next()獲得序列中的下一個(gè)元素览祖。
3.使用hasNext()方法檢查序列中是否還有元素孝鹊。
4.使用remove()將迭代器新近返回的元素刪除(注意:在調(diào)用remove()方法之前必須先調(diào)用next())
示例:
List<Pet>pets=newArrayList<Pet>(Arrays.asList(newPet("cat"),newPet("dog"),newPet("snake")));
Iterator<Pet>iterator=pets.iterator();
while(iterator.hasNext()){
Pet pet = iterator.next();
iterator.remove();
System.out.println(pet.getName());
}
System.out.println(pets);
ListIterator
ListIterator繼承自Iterator,他只能用于各種List類(lèi)的訪問(wèn)展蒂,并且ListIterator可以雙向移動(dòng)又活,他還可以產(chǎn)生當(dāng)前位置的前一個(gè)元素和后一個(gè)元素的索引苔咪。方法:
1.可以使用listIterator()方法產(chǎn)生一個(gè)指向List的開(kāi)始出的ListIterator,也可以調(diào)用listIterator(n)方法產(chǎn)生一個(gè)一開(kāi)始就指向就指向列表索引為n的元素處的ListIterator(注意:索引從1開(kāi)始)柳骄。
2.使用previous()方法獲取序列中的上一個(gè)元素团赏,使用previousIndex()方法獲取上一個(gè)元素的索引
3.使用next()方法獲取下一個(gè)元素,使用nextIndex()方法獲取下一個(gè)元素的索引
4.使用hasNext(),hasPrevious() 方法檢查是否還有元素
5.remove()方法同上
6.使用set()方法將當(dāng)前元素替換成指定元素耐薯,同樣需要先調(diào)用previous()或next()方法