java集合概述
版本: JDK 1.8
一、 java 集合思维导图
二、 数组与集合的区别
1. 长度区别
- 数组长度固定
- 集合长度可变
2. 内容不容
- 数组存储的是同一种类型的元素
- 集合可以存储不同类型的元素(一般不这么做)
3. 元素的数据类型
- 数组可以存储基本数据类型,也可以存储引用数据类型
- 集合只能存储引用数据类型(存储int,会自动装箱为Integer,类推)
三、 常见的Collection集合类
3.1 List
List 集合常用的子类有:
-
ArrayList
底层数据结构是数组,线程不安全
-
LinkedList
底层数据结构是链表,线程不安全
-
Vector
底层数据结构是数组,线程不安全
3.2 Set
-
HashSet
底层数据结构是哈希表(是一个元素为链表的数组)
-
TreeSet
底层数据结构是红黑树(是一个自平衡的二叉树)
-
LinkedHashSet
底层数据结构由哈希表和链表组成
四、Map 与 集合的区别
4.1 Map 的特点
将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射一个值
4.2 Map 和 Collection集合的区别
- Map集合存储元素是成对出现的,Map的键是唯一的,值是可以重复的
- Collection集合存储的元素是单独出现的,Collection中Set类是惟一的,List 是可重复的
4.3 要点
- Map集合的数据结构针对键有效,跟值无关
- Collection集合的数据结构针对元素有效
五、 常见的Map集合类
-
HashMap
底层数据结构是:**数组+链表+红黑树 **
-
TreeMap
底层数据结构是:红黑树