1.Collection集合体系
1.1 数组和集合的区别【理解】
-
相同点
都是容器,可以存储多个数据
-
不同点
-
数组的长度是不可变的,集合的长度是可变的
-
数组可以存基本数据类型和引用数据类型
-
集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类
-
1.2 集合类体系结构【理解】
1.3 Collection 集合特点
-
List 集合特点:添加的元素有序、可重复、有索引;
-
ArrayList、LinekdList:有序、可重复、有索引。
-
-
Set 系列集合:添加的元素是无序、不重复、无索引;
-
HashSet: 无序、不重复、无索引;
-
LinkedHashSet: 有序、不重复、无索引;
-
TreeSet:按照大小默认升序排序、不重复、无索引。
-
1.4 Collection集合的使用情景
以下几种方案为普遍使用的情况,具体的需结合项目需求综合考虑
-
1、如果希望记住元素的添加顺序,需要存储重复的元素,又要频繁的根据索引查询数据?
-
用ArrayList集合(有序、可重复、有索引),底层基于数组的。(常用)
-
-
2、如果希望记住元素的添加顺序,且增删首尾数据的情况较多?
-
用LinkedList集合(有席、可重复、有素引),底层基于双链表实现的
-
-
3.如果不在意元素顺序,也没有重复元素需要存储,只希望增删改查都快?
-
用HashSet集合(无序,不重复,无索引),底层基于哈希表实现的。 (常用)
-
-
4.如果希望记住元素的添加顺序,也没有重复元素需要存储,且希望增删改查都快?
-
用LinkedHashset集合(有序,不重复,无索引),底层基于哈希表和双链表。
-
-
5.如果要对元素进行排序,也没有重复元素需要存储?且希望增删改查都快?
-
用TreeSet集合,基于红黑树实现。
-