集合框架(ListIterator)

原创 2015年11月19日 14:47:56
/*
 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);
	}
}


结果图:


版权声明:本文为博主原创文章,如需转载请注明出处。

集合框架--ListIterator接口

通过一段代码来学习List集合: import java.util.ArrayList; import java.util.List; public class ListDemo { public...
  • syf1970
  • syf1970
  • 2016年05月08日 11:20
  • 246

JAVA基础---集合(三)--List

1.3 List 1.3.1 概述 List的最大的特点就是能够自动的根据插入的数据量来动态改变容器的大小。下面先看看List接口的一些常用方法。 1.3.2 ...
  • wolf_love666
  • wolf_love666
  • 2016年09月21日 12:48
  • 291

Java类集框架——Iterator和ListIterator 迭代器的使用(遍历集合)

学习目标: 掌握集合输出的标准操作。 掌握Iterator接口的主要作用及使用注意事项。 掌握ListIterator与Iterator接口的关系及区别。 掌握ListIterator接口的使用限制。...
  • u013087513
  • u013087513
  • 2016年08月18日 17:42
  • 2416

集合框架_ListIterator的特有功能

package cn.itcast_04; import java.util.ArrayList; import java.util.Iterator; import java.util.List;...
  • L1585931143
  • L1585931143
  • 2016年12月18日 17:00
  • 177

ListIterator接口 源代码

ListIterator接口源代码分析
  • u011642663
  • u011642663
  • 2015年11月02日 09:37
  • 522

集合迭代器 listIterator()

直接来看代码: 1、遍历 注意获取listIterator迭代器之后,必须调用next()方法,才算进入到list的第一个元素。代码中 iter,next(),就是为了让迭代器只向list的第一个...
  • weililansehudiefei
  • weililansehudiefei
  • 2017年05月14日 14:51
  • 124

Java 集合源码解析(2):ListIterator

ListIterator根据官方文档介绍, ListIterator 有以下功能: 允许我们向前、向后两个方向遍历 List; 在遍历时修改 List 的元素; 遍历时获取迭代器当前游标所在位置。 注...
  • u011240877
  • u011240877
  • 2016年10月07日 22:57
  • 4040

Iterator和ListIterator的作用和区别

Iterator和ListIterator主要区别有: 一、ListIterator有add()方法,可以向List中添加对象,而Iterator不能。 二、ListIterator和It...
  • u012289441
  • u012289441
  • 2014年08月25日 21:36
  • 1146

有关ListIterator接口的add与remove方法探究

ListIterator接口继承自Iterator接口,新增了add()方法。关于ListIterator的add()以及remove()方法的作用,《java核心技术 卷I》里如下表述可能有点歧义,...
  • goodbaby728
  • goodbaby728
  • 2013年08月21日 22:11
  • 1348

集合框架示意图

如何选择? 1、容器类和Array的区别、择取 * 容器类仅能持有对象引用(指向对象的指针),而不是将对象信息copy一份至数列某位置。 * 一旦将对象置入容器内,便损失了该对象的型别信息。 2、 *...
  • qq_27918787
  • qq_27918787
  • 2016年09月19日 11:05
  • 866
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:集合框架(ListIterator)
举报原因:
原因补充:

(最多只允许输入30个字)