JAVA 常见数据结构



实现Collection 接口

* List 接口

常用方法:add,get

  • ArrayList 访问任意位置效率高,增删效率可能会低
  • LinkedList 双向链表,两端效率高

* Set 接口

常用方法:add,contains(判断有无)

  • HashSet 不重复、无序。(内部使用 HashMap 的键这一列来存放数据)
    • LinkedHashSet 继承自HashSet,用链表维护元素之间的顺序
  • TreeSet 不重复、有序。(内部使用 TreeMap 的键这一列来存放数据)

实现Map 接口

常用方法:put,get

  • HashMap 内部存储结构:哈希表(散列表)。键无序、不重复。
    • LinkedHashMap 继承自HashMap, 底层额外维护了一个双向链表来维持数据有序。
  • WeakHashMap 改进的HashMap,对key实行“弱引用”
  • TreeMap 内部存储结构:二叉树(红黑树)。键有序、不允许null。
  • ConcurrentHashMap 线程安全
  • Hashtable 线程安全,元素不可为空

你可能感兴趣的:(JAVA 常见数据结构)