Bootstrap

20《重学JAVA》--集合(二)

一、List集合

List集合中的元素是有序的,可以重复出现,List中主要有ArrayList、LinkedList两个实现类;

在Collection中,List集合是有序的,我们可对其中每个元素的插入位置进行精确地控制,可以通过索引来访问元素,遍历元素。

二、ArrayList

ArrayList底层通过数组实现,随着元素的增加而动态扩容,线程不安全集合。

 

ArrayList继承于AbstractList,实现了List,RandomAccess,Cloneable,Serializable接口。

1. ArrayList实现于List,得到了List集合框架基础功能;

2. ArrayList实现于RandomAccess,能够快速随机访问存储元素的功能,RandomAccess是一个标记接口,没有任何方法;

3. ArrayList实现于Cloneable,得到了clone()方法,可以实现克隆功能;

4. ArrayList实现于Serializable,可以被序列化,通过序列化去传输,典型的应用就是hessian协议。

ArrayList特性:

1. 容量不固定,随着容量的增加而动态扩容

2. 有序集合(插入的顺序==输出的顺序)

3. 插入的元素可以为NULL

4. 增删改查效率更高

5. 线程不安全

ArrayList操作

get(intindex):返回List集合中指定位置的元素。

 

set(intindex,Objectelement):用指定元素替换List集合中指定位置的元素。

 

add(Objectelement):在List集合的尾部添加指定的元素。

 

add(intindex,Objectelement):在List集合的指定位置插入指定元素。

 

remove(intindex):移除List集合中指定位置的元素。

 

remove(Objectelement):如果List集合中存在指定元素,则从List集合中移除第一次出现的指定元素。

 

clear():从List集合中移除所有元素。

 

判断元素isEmpty():判断List集合中是否有元素,没有返回true,有返回false。

 

contains(Objectelement):判断List集合中是否包含指定元素,包含返回true,不包含返回false。

 

查询元素indexOf(Objecto):从前往后查找List集合元素,返回第一次出现指定元素的索引,如果此列表不包含该元素,则返回-1。lastIndexOf(Objecto):从后往前查找List集合元素,返回第一次出现指定元素的索引,如果此列表不包含该元素,则返回-1。

 

iterator():返回迭代器(Iterator)对象,迭代器对象用于遍历集合。

 

size():返回List集合中的元素数,返回值是int类型。

 

subList(intfromIndex,inttoIndex):返回List集合中指定的fromIndex(包括)和toIndex(不包括)之间的元素集合,返回值为List集合。

 

 

三、LinkedList

LinkedList是一个双向链表,每一个节点都拥有指向前后节点的引用。

 

LinkedList特性

它继承AbstractSequentialList,实现了List,Deque,Cloneable,Serializable接口。

1. LinkedList实现List,得到了List集合框架基础功能;

2. LinkedList实现Deque,Deque是一个双向队列,也就是既可以先入先出,又可以先入后出,说简单些就是既可以在头部添加元素,也可以在尾部添加元素;

3. LinkedList实现Cloneable,得到了clone()方法,可以实现克隆功能;

4. LinkedList实现Serializable,表示可以被序列化,通过序列化去传输,典型的应用就是hessian协议。

LinkedList操作

booleanadd(Objectelement):将元素添加在链表的最后

 

booleanadd(intindex,Objectelement):将元素添加在指定位置后面

 

booleanaddFirst(Objectelement):将元素添加在链表的第一个元素的位置

 

booleanaddLast(Objectelement):将元素添加在链表最后

 

Eget(intindex):获取索引处的元素

 

EgetFirst():获取第一个元素

 

EgetLast():获取第最后一个元素

 

Eremove():移除链表中第一个元素

 

booleanremove(Objecto):移除链表中指定的元素

 

Eremove(intindex):移除链表中该索引处的元素

 

EremoveFirst():移除链表中第一个元素

 

EremoveLast():移除链表中最后一个元素

 

voidpush(Ee):与add()效果一样

 

Epop():与remove()效果一样

 

Epoll():查询并移除第一个元素

 

voidclear():清空集合里的所有元素

 

Objectclone():复制一个集合

 

booleancontains(Objectobject):判断集合是否包含指定元素

 

indexOf(Objecto):返回此列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回-1。

 

lastIndexOf(Objecto):返回此列表中最后出现的指定元素的索引,如果此列表中不包含该元素,则返回-1。