集合框架面试题总结-2(底层数据结构)

集合框架底层数据结构总结

  • Collection

    1. List
      • ArrayList:Object数组
      • Vector:Object数组
      • LinkedList:双向链表(JDK1.6之前为循环链表,JDK1.7取消了循环)
    2. Set
      • HashSet(无序,唯一):基于HashMap实现的,底层采用HashMap来保存元素
      • LinkedHashSet:LinkedHashSet继承于HashSet,并且其内部是通过LinkedHashMap来实现的。
      • TreeSet(有序,唯一):红黑树(自平衡的排序二叉树)。
  • Map

    • HashMap:JDK1.8之前HashMap是由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解哈希冲突而存在的(“拉链法”解决哈希冲突)。JDK1.8之在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为8)时,将链表转化为红黑树,以减少搜索时间

    • LinkedHashMap:LinkedHashMap继承自HashMap,所以它的底层仍然是基于拉链式散列结构即由数组和链表或红黑树组成。另外,LinkedHashMap在上面结构的基础上,增加一条双向链表,使得上面的结构可以保持键值对的插入顺序。同时通过对链表进行相应的操作,实现了访问顺序相关逻辑。

    • TreeMap:红黑树(自平衡的排序二叉树)。

    • Hashtable:数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容