关闭

集合框架(ListIterator)

160人阅读 评论(0) 收藏 举报
分类:
/*
 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);
	}
}


结果图:


4
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:189819次
    • 积分:6235
    • 等级:
    • 排名:第3943名
    • 原创:336篇
    • 转载:6篇
    • 译文:0篇
    • 评论:155条
    博客专栏
    文章分类
    推荐博客
    最新评论