List集合代表一个有序集合,集合中每个元素都有其对应的顺序索引。List集合允许使用重复元素,可以通过索引来访问
指定位置的集合元素。
与Set只提供了一个iterator()方法不同,List还额外提供了一个listIterator()方法,该方法返回一个ListIterator
对象,ListIterator接口继承了Iterator接口,提供了专门操作List的方法,ListIterator接口在Iterator接口基础上增
加了如下方法:
==boolean hasPrevious():返回该迭代器关联的集合是否还有上一个元素。
==Object previous():返回该迭代器的上一个元素。
==void add():在指定位置插入一个元素。
拿ListIterator与普通Iterator进行对比,不难发现ListIterator增加了向前迭代的功能(Iterator只能向后迭代),
上面程序打印结果如下:
Java疯狂讲义
Android疯狂讲义
[Java疯狂讲义, -----分隔符------, Android疯狂讲义, -----分隔符------]
-----分隔符------
Android疯狂讲义
-----分隔符------
Java疯狂讲义
指定位置的集合元素。
与Set只提供了一个iterator()方法不同,List还额外提供了一个listIterator()方法,该方法返回一个ListIterator
对象,ListIterator接口继承了Iterator接口,提供了专门操作List的方法,ListIterator接口在Iterator接口基础上增
加了如下方法:
==boolean hasPrevious():返回该迭代器关联的集合是否还有上一个元素。
==Object previous():返回该迭代器的上一个元素。
==void add():在指定位置插入一个元素。
拿ListIterator与普通Iterator进行对比,不难发现ListIterator增加了向前迭代的功能(Iterator只能向后迭代),
而且ListIterator还可通过add方法向list集合中添加元素(Iterator只能删除元素)。下面程序示范了ListIterator的用法。
- public class TestListIterator {
- public static void main(String[] args) {
- String[] books = {"Java疯狂讲义","Android疯狂讲义"};
- List bookList = new ArrayList();
- for(int i = 0;i<books.length;i++){
- bookList.add(books[i]);
- }
- ListIterator lit = bookList.listIterator();
- while(lit.hasNext()){
- System.out.println(lit.next());
- lit.add("-----分隔符------");
- }
- System.out.println(bookList);//[Java疯狂讲义, -----分隔符------, Android疯狂讲义, -----分隔符------]
- /** 下面是反向迭代 */
- while(lit.hasPrevious()){
- System.out.println(lit.previous());
- }
- }
- }
上面程序打印结果如下:
Java疯狂讲义
Android疯狂讲义
[Java疯狂讲义, -----分隔符------, Android疯狂讲义, -----分隔符------]
-----分隔符------
Android疯狂讲义
-----分隔符------
Java疯狂讲义