Java集合面试知识点

常用集合框架

  • List 有序允许重复,可以插入 null 元素
  • Set 无序不可重复列表
  • Queue
  • Map 键值对

Set

  • HashSet

    底层 HashMap 实现

  • TreeSet
    • 插入时比较顺序
    • 插入元素必须实现 Comparable 接口
    • 底层 红黑树 实现
  • LinkedHashSet

List

特定迭代起 ListIterator 继承 Iterator

  • ArrayList

    • 非线程安全
    • 实现 RandomAccess 接口支持随机访问(通过索引序号访问),使用迭代器效率较低
    • 内部 通过数组 实现,除非构造时指定大小,否则构造后为空数组,添加第一个元素时,默认分配 大小 10
    • 扩容

      扩容为原数组大小 1.5倍或者原数组大小+新增元素个数
    • 查询快,插入慢
  • LinkedList

    • 双向链表
    • 插入快,查询慢
  • Vector

    • 线程安全
    • 实现 RandomAccess 接口 ,内部数组实现
  • Stack

    • 继承 Vector 实现栈常用操作

Queue

Map