写点什么

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

作者:杨鹏Geek
  • 2021 年 12 月 21 日
  • 本文字数:1690 字

    阅读完需:约 6 分钟

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。

发布于: 2021 年 12 月 21 日阅读数: 8
用户头像

杨鹏Geek

关注

你必须比别人更努力 才能看起来毫不费力! 2019.10.26 加入

码农

评论

发布
暂无评论
20《重学JAVA》--集合(二)