美文网首页
Java的基础集合详解

Java的基础集合详解

作者: 小白牙_2fc6 | 来源:发表于2024-03-17 12:03 被阅读0次

    在Java 1.8版本的集合框架中,下表更新了集合的接口、对应的主要实现以及底层实现的数据结构,还包括了初始容量、扩容机制以及相应的并发集合版本:

    集合接口 主要实现 底层数据结构 特点 适用场景 初始容量 扩容机制 并发集合
    List ArrayList 动态数组 保持插入顺序,索引访问元素 频繁按照索引访问元素/增删操作 10 增长到原来的1.5倍 CopyOnWriteArrayList
    LinkedList 双向链表 双向链表实现 插入删除操作更经济 不适用 不适用,因为是链表实现 (没有直接的线程安全LinkedList替代)
    Set HashSet 哈希表 快速查找,无序 快速查找不重复元素 16 当元素数量>容量*负载因子时扩容,通常为当前容量的2倍 CopyOnWriteArraySet / ConcurrentSkipListSet
    LinkedHashSet 哈希表+链表 保持插入顺序,快速访问 保留元素插入顺序的快速查找 16 当元素数量>容量*负载因子时扩容,通常为当前容量的2倍 (没有直接替代,可用ConcurrentHashMap实现)
    TreeSet 红黑树 排序集合,基于红黑树 元素排序要求 不适用 不适用,因为是红黑树的实现 ConcurrentSkipListSet
    Map HashMap 哈希表 根据键值对存储,快速访问 快速键值对存取 16 当元素数量>容量*负载因子时扩容,通常为当前容量的2倍 ConcurrentHashMap
    LinkedHashMap 哈希表+链表 保持插入顺序,访问快 保留插入顺序键值对的快速存取 16 当元素数量>容量*负载因子时扩容,通常为当前容量的2倍 (没有直接替代,可用ConcurrentHashMap实现)
    TreeMap 红黑树 根据键排序的映射集合,基于红黑树 需要对键排序 不适用 不适用,因为是红黑树的实现 ConcurrentSkipListMap

    每个集合接口下的主要实现是围绕它们的底层数据结构而构建的,这些数据结构直接影响到了集合的操作性能和使用场景。例如,ArrayList是建立在动态数组基础之上的,而LinkedList是建立在双向链表基础之上的,这两种数据结构定义了List接口在不同场景下的应用。HashSet、LinkedHashSet和TreeSet则分别基于哈希表、哈希表加链表以及红黑树实现,它们分别提供了不同的Set实现。Map接口下的HashMap、LinkedHashMap和TreeMap也基于这些数据结构实现相应功能。而相应的并发集合则是对这些数据结构进行线程安全优化后的版本。

    相关文章

      网友评论

          本文标题:Java的基础集合详解

          本文链接:https://www.haomeiwen.com/subject/kdbozdtx.html