YL的专栏

生入逆旅单行道,哪有岁月可回头。

集合框架(ListIterator)
/*
 Collection
 		|---List:元素是有序的,并且元素可以重复,因为该集合体系有索引。
 			|---ArrayList:底层的数据结构使用的是数组结构。特点:查询速度快,但是增删稍慢。线程不同步。
 			|---LinkedList:底层的数据结构使用的是链表数据结构。特点:增删速度很快,查询稍慢。
 			|---Vector:底层是数组数据结构。线程同步,都较慢,出现较早,和ArrayList功能基本相同。被ArrayList取代了。
 List集合特有的迭代器ListIterator是Iterator接口。
 在迭代时,不可以通过集合对象的方法操作集合中的元素,
 因为会发生ConcurrentModificationException异常。
 所以在迭代时,只能用迭代器的方法操作元素,可以Iterator方法时有限的。
 只能对元素进行判断,取出和删除的操作,
 如果想要其他的操作方法,如添加、修改等,就需要使用其子接口 ListIterator。
 该接口只能通过List集合的ListIterator方法获取。
 */

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;


public class ListIteratorDemo {
	public static void main(String[] args) {
		//演示列表迭代器
		ArrayList al=new ArrayList();
		al.add("java01");
		al.add("java02");
		al.add("java03");
		
		ListIterator li=al.listIterator();
		while(li.hasNext())
		{
			Object obj=li.next();
			if(obj.equals("java02"))
			{
				//增加元素
				li.add("java008");
			}
			if(obj.equals("java03"))
			{
				//修改元素
				li.set("java007");
			}
		}
		System.out.println(al);
		System.out.println(li.hasNext());   //判断迭代后面是否有元素
		System.out.println(li.hasPrevious());  //判断迭代前面是否有元素
		
		//在迭代过程中准备添加或者删除元素
		Iterator it=al.iterator();
		while(it.hasNext())
		{
			Object obj=it.next();
			if(obj.equals("java02"))
			{
				//al.add("java008"); 这样做不对
				it.remove(); //将java02的引用从集合中删除了,但是Object还在引用,所以在Object中可以打印出来。
			}
			System.out.println("obj:"+obj);
		}
		System.out.println("删除元素后的集合为:"+al);
	}
}


结果图:


阅读更多
版权声明:本文为博主原创文章,如需转载请注明出处。 https://blog.csdn.net/u012369373/article/details/49927633
个人分类: JAVA
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

集合框架(ListIterator)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭