迭代器
迭代器(也是一種設(shè)計(jì)模式)是一個(gè)對象,它的工作是遍并選擇序列中的對象。迭代器通常被稱作輕量級對象,創(chuàng)建它的代價(jià)小。Java的 Iterator只能單向移動(dòng),這個(gè)Iterator只能用來:
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類的訪問,并且ListIterator可以雙向移動(dòng),他還可以產(chǎn)生當(dāng)前位置的前一個(gè)元素和后一個(gè)元素的索引。方法:
1.可以使用listIterator()方法產(chǎn)生一個(gè)指向List的開始出的ListIterator,也可以調(diào)用listIterator(n)方法產(chǎn)生一個(gè)一開始就指向就指向列表索引為n的元素處的ListIterator(注意:索引從1開始)。
2.使用previous()方法獲取序列中的上一個(gè)元素,使用previousIndex()方法獲取上一個(gè)元素的索引
3.使用next()方法獲取下一個(gè)元素,使用nextIndex()方法獲取下一個(gè)元素的索引
4.使用hasNext(),hasPrevious() 方法檢查是否還有元素
5.remove()方法同上
6.使用set()方法將當(dāng)前元素替換成指定元素,同樣需要先調(diào)用previous()或next()方法