一.Collection集合
两个子类
(1)list集合
子实现类:
ArrayList:底层数据结构是数组,线程不安全,效率高,存储的元素有
序且可以存储相相同元素,易查询,难增删
vector:底层数据结构也是数组,线程安全,效率低,存储的元素有序
且可以存储相同的元素,易查询,难增删
LinkList:底层数据结构是链表,线程不安全,效率高,存储的元素有
序且可以存储相同的元素,易增删,难查询
(2)set集合
子实现类:
HashSet:底层数据结构是哈希表,线程不安全,效率高,存储的元素无
序且唯一
LinkHashSet:底层数据结构是链表和哈希表,线程不安全,存储的元素
有序且唯一 (唯一性靠重写hashcode方法和equals方法来保证,如
没有重写,则无法保证)
TreeSet:底层数据结构是二叉树,线程不安全,效率高,存储的元素默认
从小到大顺序排列,且元素唯一(注意:如果Treeset的泛型是自定义的
引用类型的话,他根据构造方法的不同,有两种排序的方法,一种是自然
排序(采用无参构造时):自然排序需要元素去实现compareble接口,
并且重写compareTO方法,最后结果的顺序是根据返回值的正负和0来
决定的。另外一种是比较器排序(采用有参构造时),需要重写
compleator方法,根据返回值的正负和0决定排序顺序)。
二.Map集合
Map:存储键值对应关系的数据 他是双列集合,一个键只能映射一个值,
键相同,值覆盖 Map的数据结构只跟键有关
HashMap:底层数据结构是哈希表,存储的元素无序且唯一,线程不安全,
效率高,可以存储null键null值
LinkHashMap:底层数据结构是链表和哈希表,存储的元素有序且唯一,
线程不安全,效率高 (唯一性也是靠着重写hashcode方法和equals
方法来实现的)
TreeMap:底层数据结构是二叉树,可以对键进行排序且键是唯一的,不
允许null键,线程不安全,效率高(如果TreeMap的泛型的键是自定义
的引用类型的话,他根据构造方法的不同,有两种排序的方法,一种是
自然排序(采用无参构造时):自然排序需要元素去实现compareble接
口,并且重写compareTO方法,最后结果的顺序是根据返回值的正负和
0来决定的。另外一种是比较器排序(采用有参构造时),需要重
写compleator方法,根据返回值的正负和0决定排序顺序)。
三.Map接口和Collection接口的区别
Map集合是双列表,Collection是单列表
Map的键唯一,Collection的子体系Set是唯一的
Map集合的数据结构针对键有效,跟值无关;Collection集合的数据结构是
针对元素有效
集合总结
最新推荐文章于 2025-03-12 22:55:12 发布