前言:
collection类下面有多个实现子类,每个实现子类都不一样,通过梳理每个实现子类,快速掌握便于日常工作。
关系图:
Collection
└── List
└── Set
└── Map
└── Queue
└── ArrayList
└── LinkedList
└── HashSet
└── TreeSet
└── HashMap
└── LinkedHashMap
└── Queue
└── ArrayDeque
Collection:
- 特点:
- 定义了集合的基本接口(如
add()、remove()、size()等)。 - 不保证元素是否唯一或有序。
- 定义了集合的基本接口(如
- 使用场景:
- 作为其他集合子类的基础接口(如
List、Set、Map、Queue等)。 - 用于动态存储元素(如订单列表、用户列表)。
- 作为其他集合子类的基础接口(如
List 子类:
- 特点:
- 表示一个有序且允许重复的集合。
- 定义了
isEmpty()、size()、get(int index)等方法。
- 具体实现:
ArrayList:基于动态数组实现,支持快速增删改查。LinkedList:基于链表实现,内部节点存储元素,支持快速查询但增删较慢。
- 使用场景:
- 存储用户输入的多个选项(如多个选择框)。
- 实现其他集合接口(如
Set、Map等)。
Set 子类:
- 特点:
- 表示一个无序且去重的集合。
- 每个元素只能出现一次。
- 具体实现:
HashSet:基于哈希表实现,支持快速查询。TreeSet:基于红黑树实现,保持有序。
- 使用场景:
- 去重操作(如存储用户 ID)。
- 检查元素是否存在(
contains()方法)。
Map 子类:
- 特点:
- 表示键值对的无序集合。
- 每个键只能对应一个值。
- 具体实现:
HashMap:基于哈希表实现,支持快速查找。LinkedHashMap:基于链表和哈希表结合实现,保持键的插入顺序。TreeMap:基于红黑树实现,保持键的有序性。
- 使用场景:
- 存储键值对(如用户 ID 映射用户名)。
- 快速查找键对应的值(
getValue()方法)。
Queue 子类:
- 特点:
- 表示一个无序且允许重复的集合。
- 常用于队列操作(如任务排队)。
- 具体实现:
ArrayDeque:基于数组实现,提供高效的双端队列操作。
- 使用场景:
- 实现队列操作(如任务排队、消息队列)。
- 高效的双端队列操作。
总结:
Collection是集合的基本接口。List表示有序且允许重复的集合。Set表示无序且去重的集合。- `Map 表示键值对的无序集合。
Queue表示允许重复的无序集合,常用于队列操作。
在实际工作中,可以根据具体需求选择合适的集合接口:
- 使用
List存储用户输入的多个选项。 - 使用
Set去重(如存储用户 ID)。 - 使用
Map存储键值对(如用户 ID 映射用户名)。 - 使用
Queue实现任务排队或消息队列。
969

被折叠的 条评论
为什么被折叠?



