List集合

Collection

List:元素是有序的,元素可以重复。因为该集合体系有索引。

1>ArraryList:底层的数据结构使用的是数组结构。特点:查询速度快,但是增删较慢。线程不同步

2>LinkedList:底层使用的是链表结构。特点:增删速度快,查询速度慢

3>Vector:底层是数组数据结构。线程同步。被ArrayList替代了

Set:元素是无序的,元素不可以重复

List:特有方法。凡是可以操作角标的方法都是该体系的特有方法

增:

add(index,element)

addAll(index,Collection)

删:

remove(index);

改:

set(index,element);

查:

get(index);

subList(from,to);

listIterator();

 

List集合特有的迭代器。ListIteratorIterator的子接口

在迭代时,不可以通过集合对象的方法操作集合中的元素。因为会发生ConcurrentModificationException异常。

所以,在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法是有限的,只能对元素进行判断,取出,删除的操作。如果想要其他的操作如添加、修改等,就需要用其子接口:ListIterator

 

该接口只能通过List集合的listIterator方法获取。

 


import java.util.*;
class ListDemo
{
	public static void main(String[] args)
	{
		//演示列表迭代器
		ArrayList al = new ArrayList();

		al.add("java01");
		al.add("java02");
		al.add("java03");


		ListIterator li = al.listIterator();
		
		sop("hasprevious():"+li.hasPrevious());
		
		while(li.hasNext())
		{
			Object obj = li.next();
			if(obj.equals("java02"))
			{
				//li.add("java007");
				li.set("java009");
			}	
		}

		sop("hasNext():"+li.hasNext());
		sop("hasPrevious():"+li.hasPrevious());

		while(li.hasPrevious())
		{
			sop("pre::"+li.previous());
		}

		/*
		//在迭代过程中,准备添加或删除元素
		Iterator it = al.iterator();
		while(it.hasNext())
		{
			Object obj = it.next();	//用迭代器的方法取出元素

			if(obj.equals("java02"))
			{
				al.add("java008");	//用集合的方法添加元素
							//两种方法对同一元素进行操作,会产生并发修改异常
				//it.remove();
				//sop("obj="+obj);	//将java02的引用从集合中删除
			}
		}
		*/
		sop(al);
	}

	public static void method()
	{
		ArrayList al = new ArrayList();

		al.add("java01");
		al.add("java02");
		al.add("java03");

		sop("原序列:"+al);

		//在指定位置添加元素
		al.add(1,"java05");
		sop(al);

		//删除指定位置的元素
		al.remove(2);
		sop(al);

		//修改元素
		al.set(2,"java09");
		sop(al);

		//通过角标获取元素
		sop("get(1):"+al.get(1));
		sop(al);

		//获取所有元素
		for(int x = 0;x < al.size();x++)
		{
			sop("al("+x+")="+al.get(x));
		}
		
		Iterator it = al.iterator();
		while(it.hasNext())
		{
			sop("next:"+it.next());
		}


		//通过indexof获取对象的位置
		sop("index = "+al.indexOf("java02"));

		List sub = al.subList(1,3);
		sop("sub = "+sub);
	}
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值