• List和Set 总结


    一 List三个子类的区别和应用场景

    Vector:底层是数组,查询快,增删慢

    Arraylist:底层是数组,查询块,增删慢

    LinkedList:底层是链表,查询慢,增删快

    效率:

    Vector:线程同步(安全),效率低

    ArrayList:线程不同步(不安全),效率高

    它用来代替Vector的。

    LinkedList:线程不安全,效率高

    二 Set集合的三个子类:

    • HashSet集合
    • 底层其实是包装了一个HashMap实现的
    • 底层数据结构是数组+链表 + 红黑树
    • 具有比较好的读取和查找性能, 可以有null 值
    •  通过equals和HashCode来判断两个元素是否相等
    • 非线程安全
    • LinkedHashSet集合
    • 继承HashSet,本质是LinkedHashMap实现
    • 底层数据结构由哈希表(是一个元素为链表的数组)和双向链表组成。
    • 有序的,根据HashCode的值来决定元素的存储位置,同时使用一个链表来维护元素的插入顺序
    •  非线程安全,可以有null 值
    • TreeSet集合
    • 是一种排序的Set集合,实现了SortedSet接口,底层是用TreeMap实现的,本质上是一个红黑树原理
    • 排序分两种:自然排序(存储元素实现Comparable接口)和定制排序(创建TreeSet时,传递一个自己实现的Comparator对象)
    • 正常情况下不能有null值,可以重写Comparable接口 局可以有null值了。
    •  EnumSet
    •  集合元素必须是枚举类型,否则会抛出异常
    • EnumSet集合也是有序的,其顺序就是Enum类内元素定义的顺序
    • · EnumSet存取的速度非常快,批量操作的速度也很快
  • 相关阅读:
    POJ 1789
    南华大学 复读机(并查集)
    C
    F
    POJ 1988 Cube Stacking
    并查集(一)
    把采集到的数据发送到一个Google Docs或者Google Form上 这个网站提供了参考和例子
    几种空气颗粒物和空气质量传感器
    整流桥
    STM32 中的CEC
  • 原文地址:https://www.cnblogs.com/xiaowangbangzhu/p/10552468.html
Copyright © 2020-2023  润新知