JavaSE9️⃣集合
知识点:
1、集合
集合:存储对象的容器,并提供操作对象的方法。
分为
Collection
和Map
两大体系。
-
Collection:存储单值。
-
Map:存储 K-V 键值对(也称记录)。
Hint:集合只能存放引用类型。
若使用基本类型,编译器会自动装箱(影响性能)。
2、Collection 体系
2.1、常用实现类
Collection 分为
List
和Set
体系。
-
List:有序,有下标,可重复。
Vector 类 ArrayList 类 LinkedList 类 Java 版本 1.0 1.2 1.2 存储结构 数组 数组 双向链表 线程安全 ✔ ❌ ❌ -
Set:无序,无下标,不可重复。
HashSet 类 TreeSet 接口
(SortedSet 实现类)LinkedHashSet 类
(HashSet 子类)Java 版本 1.2 1.2 1.4 存储结构 HashMap 红黑树 链表 线程安全 ❌ ❌ ❌ 元素去重原理 基于 hashCode 基于排列顺序 基于 hashCode 说明 判断相等:先 hashCode(),再 equals() 对集合元素自动排序(需实现 Comparable 接口) 保留元素的插入顺序(默认升序)
2.2、Collections 工具类
类比数组工具类
Arrays
,集合工具类也位于
java.util
包下。
常用方法:
含义 | 说明 | |
---|---|---|
binarySearch() | 二分查找 | - |
reverse() | 反转 | - |
shuffle() | 打乱 | - |
swap() | 交换位置 | 默认升序 |
sort() | 排序 | - |
synchronizedXxx() | 同步化 | 将线程不安全的集合包装为线程安全 (如 synchronizedSet() 、synchronizedList() 等) |
3、Map 体系
常用实现类
无序,无下标,Key 唯一
Hashtable | HashMap | TreeMap | |
---|---|---|---|
Java 版本 | 1.0 | 1.2 | 1.2 |
存储结构 | 数组+链表 | 数组+链表、红黑树 | 红黑树 |
线程安全 | ✔ | ❌ | ❌ |
说明 | K/V 非空 | K 和 V 可空 | 对集合元素自动排序(需实现 Comparable 接口) |