集合(一):
一.集合与数组的区别:
a.长度区别:数组固定,集合可变。
b.内容区别:数组可以是基本数据类型,也可以是引用数据类型,集合只能是引用类型。
c.元素区别:数组只能储存同一种类型;集合可以储存不同类型(一般也是同一种类型)。
二.集合框架结构图:
三.ArrayList实现类:
说明:底层是用数组实现的存储。 特点:查询效率高,增删效率低,线程不安全。我们一般使用它。
ArrayList list = new ArrayList();
List list = new ArrayList();
Collection list = new ArrayList();
常用方法:(CURD + size):
(说明:此处仅仅做简单列举,详细请查询API)
1.add 增加
2.remove 删除
3.set 修改
4.get 查看
5.size 长度
四. LinkedList实现类:
说明:底层用双向链表实现的存储。特点:查询效率低,增删效率高,线程不安全。
LinkedList list = new LinkedList();
链表图:
方法 (CURD + size):
(说明:此处仅仅做简单列举,详细请查询API)
1.add 增加
1.1 addFirst
1.2 addLast
2.remove 删除
2.1 removeFirst
2.2 removeLast
3.set 修改
4.get 查看
4.1 getFirst
4.2 getLast
5.size 长度
五. HashSet实现类:
Set 无序、不重复的集合
HashSet list = new HashSet();
方法:
1.add 增加
2.remove 删除(通过元素删除)
3.size()
六.Arraylist 和 LinkedList 比较:
1.效率不同
add 和 remove 方法,使用的位置不同,效率不同
2.ArrayList 基于数组 LinkedList 基于链表
七.ArrayList 方法扩展:
-
indexOf() 查询并返回目标元素在集合中位置,不存在返回 -1
-
contains() 判断目标元素是否存在于集合中,存在返回 true
-
toArray() 将集合转为对应类型的数组
-
equals() 比较两个集合是否相同
-
hashCode() 源于对象在堆中存储的地址
-
构造器重载
- 无参
- ArrayList(int length) 创建一个指定长度的集合
- ArrayList(Collection list) 以一个已有的集合对象创建一个新的集合对象 (复制)
八.LinkedList 方法扩展:
- clear() 清除集合元素
- 实现自 Queue 的部分方法 (以 p 开头的方法 )
九.HashSet 方法扩展:
isEmpty() 判断集合是否为空