Java集合--List

ArrayList,Vector,LinkedList


List接口

List是一个接口,继承了Collection

List 常用的实现

ArrayList,由数组实现的list。查找快,增删慢。

List lst = new ArrayList();
ArrayList <E> // 带泛型的ArrayList
List<String> lst = new ArrayList<String>();

Vector,与ArrayList类似,由数组实现,但是是线程安全的,某一时刻只能有一个线程写Vector。

Vector vec = new Vector(); // 不指定大小
Vector vec1 = new Vector(int size); // 指定大小
Vector vec2 = new Vector(int size, int incr); // 指定大小和每次递增的量
Vector vec3 = new Vector(Collection c); // 创建包含集合c元素的向量

LinkedList,链式结构的list。增删快,查找慢。

同时实现了Queue,既可以用作列表,也可以用作队列和双向队列。

List lst = new LinkedList();
LinkedList <E> // 带泛型的LinkedList
List<String> lst = new LinkedList<String>();
List的相关方法
返回类型方法名称描述
voidadd(int index, E element)指定位置添加元素
booleanaddAll(int idx, Collection c)将集合c插入到指定位置
intindexOf(Object o)获取指定元素的索引
intsize()返回列表的大小(元素数量)
booleanisEmpty()判空
Eset(int index, E element)替换指定位置的元素,返回更新前的元素
Eget(int index)获取指定索引的元素
Eremove(int index)删除指定索引的元素
booleanremoveAll(Collection c)删除列表是所有集合c中元素

add方法: 创建列表之后,添加元素要从位置0开始,依次添加, (可以add null值):

List<String> lst = new ArrayList<String>();
lst.add(0,"zero");
lst.add(1,"one");
lst.add(null);  // add的值可以是null 

如果调换了顺序,则会报错,如下面

List<String> lst = new ArrayList<String>();
lst.add(1,"one");   // 直接从位置1开始添加,会报错
lst.add(0,"zero");  

set方法: 看上去是设置某个位置上的元素,实际上是替换,要求替换的位置上必须先有元素,不能为空,因为它会返回替换前的元素。

set方法速度很快,类似的还有get()

List<String> lst = new ArrayList<String>();
lst.add(0, "zero");
lst.set(1, "one"); // 由于位置1没有元素,直接set新元素会抛出异常

如果需要向空列表中乱序添加元素,可以先全部初始化为null,然后再用set替换。

List<String> lst = new ArrayList<String>();
lst.add(null);
lst.add(null);
lst.add(null);

lst.set(0, "zero");
lst.set(1, "one");
lst.set(2, "two");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值