集合框架(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);
	}
}


结果图:


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

相关文章推荐

Java基础---集合框架---迭代器、ListIterator、Vector中枚举、LinkedList、ArrayList、HashSet、TreeSet、二叉树、Comparator

为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。 数组和集合类同是容器,有何不同? 数组虽然也可以...

java集合框架

  • 2014-04-21 21:04
  • 151KB
  • 下载

Java 集合框架总结与巩固

集合接口概要 各接口及实现类说明 Collection since 12 List since 12 Map since 12 SortedMap since 12 NavigableMap sinc...

java集合框架

  • 2013-09-21 02:36
  • 14KB
  • 下载

java集合框架

  • 2014-07-15 21:26
  • 290KB
  • 下载

java集合框架Stack栈

Stack栈是一个简单的类,操作实现均在父类Vector中完成!!!public class Stack extends Vector { /** * 先进后出 * Vec...

黑马程序员:java集合框架(二)

------- android培训、java培训、期待与您交流! -------------------------------- android培训、java培训、、期待与您交流! -------...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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