35、集合知识总结

Collection

  • List(存取有序,有索引,可以重复)

    • ArrayList
      底层是数组实现的,线程不安全,查找和修改快,增和删比较慢

    • LinkedList
      底层是链表实现的,线程不安全,增和删比较快,查找和修改比较慢

    • Vector
      底层是数组实现的,线程安全的,无论增删改查都慢

如果查找和修改多,用ArrayList
如果增和删多,用LinkedList
如果都多,用ArrayList

  • Set(存取无序,无索引,不可以重复)

    • HashSet
      底层是哈希算法实现

    • LinkedHashSet
      底层是链表实现,可以保证元素唯一,存取顺序一致

    • TreeSet
      底层是二叉树算法实现,可以排序,存储自定义类型时需要注意实现Comparable接口并重写compareTo方法

一般在开发的时候不需要对存储的元素排序,所以在开发的时候大多用HashSet,HashSet的效率比较高.TreeSet在面试的时候比较多

Map

  • HashMap
    底层是哈希算法
  • LinkedHashMap
    底层是链表,存取顺序一致
  • TreeMap
    底层是二叉树算法,可以排序

开发中用HashMap比较多

原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/10137538.html