第十一章-持有对象--迭代器

2017-05-02  本文已影响0人  落叶刻痕

迭代器

迭代器(也是一种设计模式)是一个对象,它的工作是遍并选择序列中的对象。迭代器通常被称作轻量级对象,创建它的代价小。Java的 Iterator只能单向移动,这个Iterator只能用来:
1.使用方法iterator()要求容器返回一个Iterator。Iterator将准备好返回序列的第一个元素。
2.使用next()获得序列中的下一个元素。
3.使用hasNext()方法检查序列中是否还有元素。
4.使用remove()将迭代器新近返回的元素删除(注意:在调用remove()方法之前必须先调用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可以双向移动,他还可以产生当前位置的前一个元素和后一个元素的索引。方法:
1.可以使用listIterator()方法产生一个指向List的开始出的ListIterator,也可以调用listIterator(n)方法产生一个一开始就指向就指向列表索引为n的元素处的ListIterator(注意:索引从1开始)。
2.使用previous()方法获取序列中的上一个元素,使用previousIndex()方法获取上一个元素的索引
3.使用next()方法获取下一个元素,使用nextIndex()方法获取下一个元素的索引
4.使用hasNext(),hasPrevious() 方法检查是否还有元素
5.remove()方法同上
6.使用set()方法将当前元素替换成指定元素,同样需要先调用previous()或next()方法

上一篇下一篇

猜你喜欢

热点阅读