JavaSE9️⃣集合

知识点

  • 数据结构:线性表、树、散列表
  • Java 知识泛型
  • 设计模式迭代器

1、集合

集合存储对象的容器,并提供操作对象的方法

分为 CollectionMap 两大体系。

  • Collection:存储单值

    image-20220302233359176
  • Map:存储 K-V 键值对(也称记录)。

    image-20220413164039680

Hint集合只能存放引用类型

若使用基本类型,编译器会自动装箱(影响性能)。

2、Collection 体系

image-20220303000559952

2.1、常用实现类

Collection 分为 ListSet 体系。

  • 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 体系

image-20220309091947108

常用实现类

无序,无下标,Key 唯一

Hashtable HashMap TreeMap
Java 版本 1.0 1.2 1.2
存储结构 数组+链表 数组+链表、红黑树 红黑树
线程安全
说明 K/V 非空 K 和 V 可空 对集合元素自动排序(需实现 Comparable 接口)
posted @ 2023-03-14 00:58  Jaywee  阅读(19)  评论(0编辑  收藏  举报

👇