黑马程序员,集合List

android培训java培训、期待与您交流


/*

Collection
|--List:元素是有序的,元素可以重复,因为该集合体系有索引。
|--ArrayList:底层使用的是数组结构。特点:查询速度很快。增删稍慢。线程不同步。
|--LinkedList:底层是链表数据结构。特点:查询稍慢,增删很快。
|--Vector:底层是数组数据结构。线程同步的。被ArrayList替代了。

ArrayList初始化长度是10当数组元素超过10,就new一个15的的数组,把旧的元素复制进来,在把新元素添加进去,是百分之五十延长。
Vector是百分之百延长。

|--Set:元素是无序的,元素不可以重复,因为没有索引。
List:
特有方法:凡是可以操作角标的方法都是该体系特有的方法。

add(index,element);
addAll(index,Collection);

remove(index);

set(index,element);

get(index);
subList(from,to);
listIterator();

List集合特有的迭代器。ListIterator是Iterator的子接口。

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

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

该接口只能通过List集合的listIterator方法获取。
*/
import java.util.*;
class ListDemo
{
public static void method()
{
ArrayList al = new ArrayList();
ArrayList al2 = new ArrayList();

//添加元素
al.add("java01");
al.add("java02");
al.add("java03");
al.add("java04");
//sop(al);
//在指定位置添加元素。
al.add(1,"java09");
//sop(al);
al2.addAll(al);
//sop("al2:"+al2);
al2.remove(0);
al2.add(3,"java08");
al2.removeAll(al);
//sop(al2);
al2.set(0,"java06");

al2.get(0);sop(al2.get(0));
al2.addAll(al);
sop(al2);

sop(al2.subList(0,3));
for (int i =0;i<al2.size();i++ )
{
sop(al2.get(i));
}
Iterator it = al2.iterator();

while (it.hasNext())
{
sop(it.next());
}

}
public static void main(String[] args)
{
//延时列表迭代器。
ArrayList al = new ArrayList();
ArrayList al2 = new ArrayList();

//添加元素
al.add("java01");
al.add("java02");
al.add("java03");
al.add("java04");
sop(al);

ListIterator li = al.listIterator();
while (li.hasNext())
{
Object obj =li.next();
if (obj.equals("java02"))
{
//li.add("java009");
li.set("java006");
}
}
//sop(li.previous());


while (li.hasPrevious())
{
Object obj =li.previous();
li.add("java009");
//li.set("java006");

}

sop(al);
/*
//在迭代过程中,准备添加或删除元素。
Iterator it = al2.iterator(0);

while (it.hasNext())
{
Object obj =it.next();
if (obj.equals("java02")
{
//al.add("java008");//不准许用不同的对象同时对数据进行更改,
//会发生并发修改异常异常,因为迭代器只知道这里面有3个元素,你用集合加一个他不识别。
//可以用迭代器的方法。
it.remove();//将java02的引用从集合中删除。
sop(obj);
}
}
sop(al);
*/



}
public static void sop(Object obj)
{
System.out.println(obj);
}

}


android培训java培训、期待与您交流


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值