集合的结构体系:
(虚线框--------接口)
(实线框--------实现类)
HashSet:
- 底层数据结构: 哈希表
- 可重复?有序?: 唯一,无序
- 如何保证元素唯一: 依赖hashCode() 和 equals() 两个方法
TreeSet:
- 底层数据结构: 红黑树(二叉树)
- 可重复?有序?: 唯一,有序
- 如何保证元素唯一: 自然排序比较器排序保证元素排序,根据元素的返回值是否为0保证元素的唯一性
ArrayList:
- 底层数据结构: 数组
- 可重复?有序?: 重复,有序
- 优点: 查询快,效率高
- 缺点: 增删慢
- 线程安全: 不安全
LinkedList:
- 底层数据结构: 链表
- 可重复?有序?: 重复,有序
- 优点: 增删快,效率高
- 缺点: 查询慢
- 线程安全: 不安全
HashMap:
- 底层数据结构: 哈希表(数组+链表+红黑树)
- 可重复?有序?: key值唯一,无序
- 优点: 支持null,取值快
- 线程安全: 不安全
HashTable:
- 底层数据结构: 哈希表
- 可重复?有序?: 无序
- 缺点: 不支持null,取值慢
- 线程安全: 安全