首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java集合框架(二)—— HashSet、LinkedHashSet、TreeSet和EnumSet

(因为两次都调用了new关键字来创造字符串对象),这两个字符串对象使用==运算符判断肯定返回false,但它们通过equals方法比较将返回true,所以添加失败。...最后输出set集合时,将看到输出结果只有一个元素。 上面介绍的是Set集合的通用知识,完全适合HashSet、TreeSet和EnumSet三个实现类。...由于上边的Integer类实现了Comparable接口,故TreeSet会调用集合元素的compareTo(Object o)方法来比较元素之间的大小关系,然后将集合元素按升序排列(数据从低到高排列)...static EnumSet copyOf(Collection c);  使用一个普通集合来创建EnumSet集合。...只有当需要一个保持排序的Set时,才应该使用TreeSet,否则都应该使用HashSet。

1.2K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java基础面试整理

    ☕ 《MYSQL从入门到精通》数据库是开发者必会基础之一~ 吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄之助。苟未尽善尽美,敬请批评指正,以资改进。!...强制类型转换 了解如何进行强制类型转换,将一个数据类型转换为另一个数据类型。...在示例中,我们将双精度浮点数转换为整数,通过(int)语法进行强制类型转换。 23. 枚举集合 了解如何使用EnumSet和EnumMap来处理枚举类型的集合和映射。...:" + days); System.out.println("EnumMap:" + dayActivities); } } 概念解释: EnumSet是专门用于枚举类型的集合...EnumMap是专门用于枚举类型的映射,它将枚举常量映射到特定的值。 在示例中,我们演示了如何创建和使用EnumSet和EnumMap来处理枚举类型的数据。 24.

    8810

    深入浅出的分析 Set集合

    的 key 实现,元素也不可重复;TreeSet 是一个排序的集合,集合中的元素基于 TreeMap 的 key 实现,同样元素不可重复;EnumSet 是一个与枚举类型一起使用的专用 Set 集合...TreeMap的朋友,一定知道TreeMap会自动将key按照一定规则进行排序,TreeSet正是使用了TreeMap这种特性,来实现添加的元素集合,在输出的时候,其结果是已经排序好的。...EnumSet EnumSet 是一个与枚举类型一起使用的专用 Set 集合,继承自AbstractSet抽象类。...://创建一个 EnumSet,将EnumEntity 元素内容添加到EnumSet中EnumSet allSet = EnumSet.allOf(EnumEntity.class);System.out.println...EnumSet 是一个与枚举类型搭配使用的专用 Set 集合,在 jdk1.5 中加入。

    51420

    java中的Set集合

    HashSet类 HashSet是Set接口的典型实现,大多数时候使用Set集合时就是使用这个实现类。HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。...自然排序 TreeSet会调用集合元素的compareTo(Objec obj)方法来比较元素之间的大小关系,然后将集合元素按升序排列,这就是自然排序。...EnumSet的集合元素也是有序的,EnumSet以枚举值在Enum类内的定义顺序来决定集合元素的顺序。...EnumSet complementOf(EnumSet s):创建一个其元素类型与指定EnumSet里元素类型相同的EnumSet集合,新的集合里包含原集合不包含的枚举值。...EnumSet copyOf(Collection c):使用一个普通集合来创建EnumSet集合; EnumSet copyOf(EnumSet s):复制原集合; EnumSet noneOf(Class

    1.3K10

    (51) 剖析EnumSet 计算机程序的思维逻辑

    使用EnumSet,可以方便高效地回答这些问题,怎么做呢?...实现原理 位向量 EnumSet是使用位向量实现的,什么是位向量呢?就是用一个位表示一个元素的状态,用一组位表示一个集合的状态,每个位对应一个元素,而状态只可能有两种。...EnumSet是一个抽象类,它没有定义使用的向量长度,它有两个子类,RegularEnumSet和JumboEnumSet。...实现原理小结 以上就是EnumSet的基本实现原理,内部使用位向量,表示很简洁,节省空间,大部分操作都是按位运算,效率极高。...对于只有两种状态,且需要进行集合运算的数据,使用位向量进行表示、位运算进行处理,是计算机程序中一种常用的思维方式。 至此,关于具体的容器类,我们就介绍完了。

    78970

    【小家Java】深入理解Java枚举类型(enum)及7种常见的用法(含EnumMap和EnumSet)

    我们注意到,DayEnum类是final类型的,将无法被继承。...(EnumSet和EnumMap) java.util.EnumSet和java.util.EnumMap是两个枚举集合。...由于直接存储和操作都是bit,因此EnumSet空间和时间性能都十分可观,足以媲美传统上基于 int 的“位标志”的运算,重要的是我们可像操作set集合一般来操作位运算,这样使用代码更简单易懂同时又具备类型安全的优势..., E to) // 初始集合包括指定集合的补集 > EnumSet complementOf(EnumSet s) // 创建一个包括参数中所有元素的EnumSet...//指定补集,也就是从全部枚举类型中去除参数集合中的元素,如下去掉上述enumSet2的元素 EnumSet enumSet3= EnumSet.complementOf

    6.6K42

    JPA2.1中三个提升应用性能的新功能

    逐个更新实体,而不是使用单条语句进行更新 使用Java应用程序而非数据库进行大量数据处理 JPA提供了处理这类问题的方法,并给JPA2.1 增加了一些额外功能,可以极大地提升性能表现,...笔者将在本文中解释如何利用JPA2.1的功能避免上述问题。...这一问题被称作n+1查询问题,无论我们使用的是MySQL、SqlServer还是其他数据库,都容易出现此类问题。因此在生产环境中,随着数据量不断增大,代码的性能就越差。...别误会,在Java 中实现逻辑的好处很多,但如果将部分逻辑实现在数据库中,只把结果发送到业务逻辑层,也能得到很好的效果。 在数据库中执行逻辑的方法很多。...在本文中,笔者将仔细探讨存储过程,更确切地说是探讨调用存储过程的方式。 在JPA 2.0中,并没有针对存储过程的实际支持,本地查询是调用存储过程的唯一方式。

    1.8K40

    【java筑基】一篇教会你set集合

    前 言 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端 ☕专栏简介:深入、全面、系统的介绍java的基础知识 文章简介:本文将介绍java常用的set集合,建议收藏备用...,创作不易,敬请三连哦 大厂真题:大厂集合面试题汇总 文章目录 1 HashSet类 2 TreeSet类 3 EnumSet类 4 各Set类的性能分析 Set集合与Collection基本相同...HashSet中元素使用的槽位是“桶‘,如果两个对象的equals()方法返回值是true,会放在一个桶里,通过链式方法存储。...es1 = EnumSet.allOf(Season.class); System.out.println(es1); EnumSet es2 = EnumSet.noneOf...Set集合都是线程非安全的,可以使用collections工具类中sychronizedSortedSet方法包装该集合来实现同步。

    28410

    初探Java枚举类

    1.何为枚举 枚举是一种数据类型,具有集合的一些特点,可以存放多个元素,但存储对象有限且固定,枚举也有比较常见的使用场景。...3.枚举特性 枚举的特性,归结起来就是一句话: 除了不能继承,基本上可以将 enum 看做一个常规的类。...4.1EnumSet EnumSet 是枚举类型的高性能 Set 实现。它要求放入它的枚举常量必须属于同一枚举类型。 主要接口: noneOf - 创建一个具有指定元素类型的空 EnumSet。...complementOf - 初始集合包括指定集合的补集。 of - 创建一个包括参数中所有元素的 EnumSet。 copyOf - 创建一个包含参数容器中的所有元素的 EnumSet。...所以 EnumMap 使用数组来存放与枚举类型对应的值。

    69710

    Java 集合补充

    当程序调用Iterable的foreach遍历集合元素,程序会依次将集合元素传给Consumer 的accep(T t)(该接口唯一的抽象方法)方法,因为Consumer是函数式接口,可以使用Lambda...EnumSet类 EnumSet是一个专为枚举设计的集合类。EnumSet也是有序的,EnumSet以枚举值在EnumSet类内的定义顺序来决定集合元素的顺序。...集合,集合元素就是Season枚举类的全部枚举值 EnumSet es1 = EnumSet.allOf(Season.class); System.out.println...EnumSet集合 EnumSet enumSet = EnumSet.copyOf(c); // ① System.out.println(enumSet); //...如果需要经常执行插入删除操作来改变大量数据的List集合的大小,可以考虑LinkedList。 有多个线程访问可以考虑使用Collection是将集合包装成线程安全的集合。

    1.1K50

    8条枚举与注解技巧,提升代码质量与设计美学

    ,可以使用EnumSet取代位域 public enum Style {BOLD, ITALIC, UNDERLINE, STRIKETHROUGH}将枚举常量存入集合 Text text...); //打印集合内容 [BOLD, ITALIC, UNDERLINE] text.applyStyles(enumSet);EnumSet.of 方法能够使用位运算记录枚举加入集合注意它返回的结果并不是不可变对象...//返回的集合可以继续添加对象 public static > EnumSet of(E e1, E e2) { EnumSet集合时,使用EnumSet存储会更简单、高效善用EnumMap当需要为不同的枚举进行分组时可以考虑使用EnumMap定义枚举类型为植物的成熟周期...、可读性、扩展性ordinal用于标识枚举类型顺序,位置变动会发生改变,如果要依赖顺序性,最好使用字段记录EnumSet 使用位运算,在少量的空间高效的记录存储在同一集合的枚举常量EnumMap 使用ordinal

    8621

    Java 枚举 新特性

    EnumSet:一个专门为枚举设计的高效Set实现,内部使用位向量来存储枚举值,因此比传统的HashSet更加高效。它特别适用于需要存储枚举类型的集合。...EnumSet weekend = EnumSet.of(Day.SATURDAY, Day.SUNDAY); EnumMap:与EnumSet类似,EnumMap是一种使用枚举类型作为键的高效...JDK 1.8:枚举与Stream API JDK 1.8最重要的特性之一就是引入了Stream API,它极大地简化了对集合的操作。枚举也可以很方便地与Stream结合使用。...JDK 14:switch表达式和枚举 在JDK 12引入预览版的switch表达式后,JDK 14正式将switch表达式作为语言特性之一。...通过合理使用这些特性,我们可以编写更清晰、高效的代码,将Java的强大特性充分发挥出来。

    7610
    领券