ListIterator的用法
2014-03-06 14:57
309 查看
ListIterator是一个功能更加强大的Iterator的子类型,其定义为:
public interface ListIterator<E> extends Iterator<E>
ListIterator的强大之处在于其可以双向移动,还可以产生相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引,还可以使用set()方法替换它访问过的最后一个元素。不过ListIterator只能用于对各种List类的访问,可以通过调用List对象的listIterator()方法产生一个指向List开始索引处的ListIterator,还可以调用listIterator(int)方法产生一个指向List指定索引处的ListIterator。下面的例子演示一下这些能力:
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIteratorDemo {
public static void main(String[] args) {
List<String> lists = new ArrayList<String>();
lists.add("1A");
lists.add("2B");
lists.add("3C");
lists.add("4D");
lists.add("5F");
lists.add("6F");
lists.add("7G");
ListIterator<String> iterator = lists.listIterator();
System.out.println("-----------");
//向后遍历
while(iterator.hasNext()){
System.out.print(iterator.next()+" ");
}
System.out.println();
System.out.println("-----------");
//此时游标已经指向迭代器的尾部,可以向前遍历
while(iterator.hasPrevious()){
System.out.print(iterator.previous()+" ");
}
System.out.println();
System.out.println("-----------");
//从指定位置向前遍历
iterator = lists.listIterator(2);
while(iterator.hasPrevious()){
System.out.print(iterator.previous()+" ");
}
System.out.println();
System.out.println("-----------");
iterator = lists.listIterator();
//替换元素
while(iterator.hasNext()){
String str = iterator.next();
iterator.set("H:"+str);
}
while(iterator.hasPrevious()){
System.out.print(iterator.previous()+" ");
}
}
}
结果为:
-----------
1A 2B 3C 4D 5F 6F 7G
-----------
7G 6F 5F 4D 3C 2B 1A
-----------
2B 1A
-----------
H:7G H:6F H:5F H:4D H:3C H:2B H:1A
public interface ListIterator<E> extends Iterator<E>
ListIterator的强大之处在于其可以双向移动,还可以产生相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引,还可以使用set()方法替换它访问过的最后一个元素。不过ListIterator只能用于对各种List类的访问,可以通过调用List对象的listIterator()方法产生一个指向List开始索引处的ListIterator,还可以调用listIterator(int)方法产生一个指向List指定索引处的ListIterator。下面的例子演示一下这些能力:
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIteratorDemo {
public static void main(String[] args) {
List<String> lists = new ArrayList<String>();
lists.add("1A");
lists.add("2B");
lists.add("3C");
lists.add("4D");
lists.add("5F");
lists.add("6F");
lists.add("7G");
ListIterator<String> iterator = lists.listIterator();
System.out.println("-----------");
//向后遍历
while(iterator.hasNext()){
System.out.print(iterator.next()+" ");
}
System.out.println();
System.out.println("-----------");
//此时游标已经指向迭代器的尾部,可以向前遍历
while(iterator.hasPrevious()){
System.out.print(iterator.previous()+" ");
}
System.out.println();
System.out.println("-----------");
//从指定位置向前遍历
iterator = lists.listIterator(2);
while(iterator.hasPrevious()){
System.out.print(iterator.previous()+" ");
}
System.out.println();
System.out.println("-----------");
iterator = lists.listIterator();
//替换元素
while(iterator.hasNext()){
String str = iterator.next();
iterator.set("H:"+str);
}
while(iterator.hasPrevious()){
System.out.print(iterator.previous()+" ");
}
}
}
结果为:
-----------
1A 2B 3C 4D 5F 6F 7G
-----------
7G 6F 5F 4D 3C 2B 1A
-----------
2B 1A
-----------
H:7G H:6F H:5F H:4D H:3C H:2B H:1A
相关文章推荐
- (63)ListIterator用法、List均有的增删改查
- List和ListIterator的常见用法及特性
- Iterator和ListIterator的用法
- List集合ListIterator和Iterator迭代器区别与用法
- 集合的ListIterator的用法
- java集合中list集合基本用法及List集合特有的迭代器ListIterator
- java Iterator和ListIterator的区别和用法
- ListIterator用法
- 【JAVA语法】持有对象--Java中迭代器listIterator的用法
- 列表迭代器ListIterator的用法
- JavaScript shift() Method 用法
- php 中implode explode 用法
- CListCtrl的用法
- asp.net Repeater控件用法----一列数据在Repeater中每行显示固定记录方法
- LINUX mount -t用法
- Delphi Invalidate的用法
- CIPAddressCtrl控件的用法
- HTML中em标签的用法
- C#中哈希表(HashTable)的用法详解
- 函数指针和typedef函数指针用法