zoukankan      html  css  js  c++  java
  • Java集合类学习笔记(Set集合)

    Set集合不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set集合中,则添加操作失败,add()方法返回false,且新元素不会被加入。

     

    HashSet类的特点:

    • 不能保证元素的排列顺序,顺序可能与添加顺序不同,也有可能发生变化。
    • HashSet不是同步的,如果多个线程同时访问并修改一个HashSet时,必须保证其同步。
    • 元素值可以是null。

     

    LinkedHashSet类的特点:

    是HashSet类的子类,它根据元素的hashCode值来决定元素的存储位置,但同时使用链表维护元素的次序。

     

    TreeSet类的特点:

    是SortedSet接口的实现类,可以确保集合元素处于排序状态。

     

    EnumSet类的特点:

    是一个专为枚举类设计的集合类,其中的所有元素都必须是指定枚举类型的枚举值。

    集合元素是有序的,以枚举值在Enum类内的定义顺序来决定集合元素的顺序。

    不允许插入null元素,否则会抛出NullPointerException。

     

     

    各Set实现类的性能分析:

    HashSet的性能总是比TreeSet好(特别是最常用的添加、查询元素等操作)。

    LinkedHashSet比HashSet要略微慢一点,这是由于维护链表所带来的额外开销造成的。

    EnumSet是所有Set实现类中性能最好的,但它只能保存同一个枚举类的枚举值作为集合元素

     

    Set的三个实现类HashSet、TreeSet、EnumSet都不是线程安全的,可以通过Collections工具类的synchronizedSortedSet方法来“包装”该Set集合。此操作最好在创建时进行,以防对Set集合的意外非同步访问。

     

  • 相关阅读:
    一些坑爹的错误
    鼠标键盘钩子捕获(初版)
    【Win10】我们无法更新系统保留的分区
    实验一:c++简单程序设计(1)
    《Java 8 in Action》Chapter 1:为什么要关心Java 8
    《Java 8 in Action》Chapter 2:通过行为参数化传递代码
    Java集合类综合
    Java内存模型
    你真的会阅读Java的异常信息吗?
    Java常用异常整理
  • 原文地址:https://www.cnblogs.com/microyum/p/5383676.html
Copyright © 2011-2022 走看看