目录
集合框架的主要优点是通过使用高性能的数据结构和算法,可以帮助开发者更高效地处理数据。此外,集合框架的接口和实现是可互换的,因此可以通过切换实现来调整程序的行为。以下是集合框架中的一些主要接口和类。
-
List
- 适用场景:当需要保持元素的插入顺序,或者需要频繁访问元素时,List是一个好选择。
- 特点:
- 有序集合(有序号),可以包含重复元素。
- 支持随机访问元素(通过索引)。
- 实现方式:
- ArrayList:基于动态数组实现,随机访问性能高,但插入和删除元素(特别是中间位置)时性能较低。
- LinkedList:基于双向链表实现,插入和删除元素性能较高,但随机访问性能较低。
-
Set
- 适用场景:当需要排除集合中重复的元素时,适合使用Set。
- 特点:
- 无序集合(无序号),不允许包含重复元素。
- 提供快速查找、插入和删除操作。
- 实现方式:
- HashSet:基于哈希表实现,提供了快速的查找、插入和删除操作。
- LinkedHashSet:基于哈希表和链表实现,保持了元素的插入或访问顺序(遍历输出时和插入时一样)。
- TreeSet:基于红黑树实现,保持了元素的排序顺序(遍历输出时按自然排序)。
-
Map
- 适用场景:当需要存储键值对,并能够通过键快速查找值时,使用Map。
- 特点:
- 存储键值对,键唯一,值可以重复。
- 提供快速查找、插入和删除操作。
- 实现方式:
- HashMap:基于哈希表实现,提供了快速的查找、插入和删除操作(不保证键值对的顺序)。
- LinkedHashMap:基于哈希表和链表实现,保持了元素的插入或访问顺序(遍历输出时和插入时一样)。
- TreeMap:基于红黑树实现,保持了元素的排序顺序(遍历输出时按自然排序)。
- ConcurrentHashMap:加了锁,是线程安全的。
- LinkedMultiValueMap:需要存储多个值与单个键相关联的映射时。并且保持这些值的插入顺序。是Spring中定义的数据结构。