Java_基础—集合的总结

来源:互联网 发布:单片机usb通讯协议 编辑:程序博客网 时间:2024/06/05 23:03

Collection(单列集合)

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

    • ArrayList:底层是数组实现,线程不安全,查找和修改快,增和删比较慢
    • LinkedList:底层是链表实现,线程不安全,增和删比较快,查找和修改比较慢
    • Vector:底层是数组实现,线程安全的,无论增删改查都慢

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

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

    • HashSet:底层是Hash算法实现
      • LinkedHashSet:底层由链表实现,但是也是可以保证元素唯一,和HashSet原理一样
    • TreeSet:底层是二叉树算法实现

    一般在开发的时候不需要对元素存储的元素排序,所以在开发的时候大多用HashSet,HashSet效率比较高
    TreeSet在面试的时候比较多,问你有几种排序方式,和几种排序方式的区别

Map(双列集合)

  • HashMap:底层是哈希算法,针对键
    • LinkedHashMap:底层是链表,针对键
  • TreeMap:底层是二叉树算法实现,针对键

    开发中用HashMap比较多