java-collection类

前言:

collection类下面有多个实现子类,每个实现子类都不一样,通过梳理每个实现子类,快速掌握便于日常工作。


关系图:

Collection
  └── List
  └── Set
  └── Map
  └── Queue
  └── ArrayList
  └── LinkedList
  └── HashSet
  └── TreeSet
  └── HashMap
  └── LinkedHashMap
  └── Queue
  └── ArrayDeque

Collection:

  • 特点
    • 定义了集合的基本接口(如 add()remove()size() 等)。
    • 不保证元素是否唯一或有序。
  • 使用场景
    • 作为其他集合子类的基础接口(如 ListSetMapQueue 等)。
    • 用于动态存储元素(如订单列表、用户列表)。

 List 子类:  

  • 特点
    • 表示一个有序且允许重复的集合。
    • 定义了 isEmpty()size()get(int index) 等方法。
  • 具体实现
    • ArrayList:基于动态数组实现,支持快速增删改查。
    • LinkedList:基于链表实现,内部节点存储元素,支持快速查询但增删较慢。
  • 使用场景
    • 存储用户输入的多个选项(如多个选择框)。
    • 实现其他集合接口(如 SetMap 等)。

Set 子类:

  • 特点
    • 表示一个无序且去重的集合。
    • 每个元素只能出现一次。
  • 具体实现
    • HashSet:基于哈希表实现,支持快速查询。
    • TreeSet:基于红黑树实现,保持有序。
  • 使用场景
    • 去重操作(如存储用户 ID)。
    • 检查元素是否存在(contains() 方法)。

Map 子类:

  • 特点
    • 表示键值对的无序集合。
    • 每个键只能对应一个值。
  • 具体实现
    • HashMap:基于哈希表实现,支持快速查找。
    • LinkedHashMap:基于链表和哈希表结合实现,保持键的插入顺序。
    • TreeMap:基于红黑树实现,保持键的有序性。
  • 使用场景
    • 存储键值对(如用户 ID 映射用户名)。
    • 快速查找键对应的值(getValue() 方法)。

Queue 子类:

  • 特点
    • 表示一个无序且允许重复的集合。
    • 常用于队列操作(如任务排队)。
  • 具体实现
    • ArrayDeque:基于数组实现,提供高效的双端队列操作。
  • 使用场景
    • 实现队列操作(如任务排队、消息队列)。
    • 高效的双端队列操作。

总结:

  • Collection 是集合的基本接口。
  • List 表示有序且允许重复的集合。
  • Set 表示无序且去重的集合。
  • `Map 表示键值对的无序集合。
  • Queue 表示允许重复的无序集合,常用于队列操作。

在实际工作中,可以根据具体需求选择合适的集合接口:

  • 使用 List 存储用户输入的多个选项。
  • 使用 Set 去重(如存储用户 ID)。
  • 使用 Map 存储键值对(如用户 ID 映射用户名)。
  • 使用 Queue 实现任务排队或消息队列。

你可能感兴趣的:(java,java,开发语言)