A brief discussion on EnumSet of Java collections
EnumSet
EnumSet is a collection class specially designed for enumeration. All elements in EnumSet must be enumeration values of the specified enumeration type. , the enumeration type is specified explicitly or implicitly when creating the EnumSet.
#The set elements of EnumSet are also ordered. EnumSet determines the order of set elements based on the order in which the enumeration values are defined within the Enum class.
EnumSet is stored internally in the form of a bit vector. This storage form is very compact and efficient, so the EnumSet object occupies very little memory and runs very efficiently. Especially when performing batch operations (such as calling the containsAll() and retainAll() methods), if the parameters are also EnumSet collections, the execution speed of the batch operation is also very fast.
The EnumSet class does not expose any constructor to create instances of this class, and the program should create EnumSet objects through the class methods it provides.
The EnumSet collection does not allow adding null elements. If you try to insert a null element, EnumSet will throw a NullPointerException exception.
If you just want to determine whether the EnumSet contains null elements or try to delete null elements, no exception will be thrown. Just the deletion operation will return false because no null elements are deleted.
Method introduction:
EnumSet allOf(Class elementType): Create an array containing the specified EnumSet collection of all enumeration values in the enumeration class.
EnumSet complementOf(EnumSet e): Create an EnumSet collection whose element type is the same as the element type in the specified EnumSet. The new EnumSet collection contains all the elements that the original EnumSet collection does not Contains the remaining enumeration values of this type of enumeration class (that is, the sum of the collection elements of the new EnumSet collection and the original EnumSet collection is all the enumeration values of the enumeration class).
EnumSet copyOf(Collection c): Use an ordinary collection to create an EnumSet collection.
EnumSet copyOf(EnumSet e): Create an EnumSet collection with the same element type and the same collection elements of the specified EnumSet.
EnumSet noneOf(Class elementType): Create an empty EnumSet whose element type is the specified enumeration type.
EnumSet of(E first,E…rest): Create an EnumSet collection containing one or more enumeration values, passing in multiple enumerations Values must belong to the same enumeration class.
EnumSet range(E from,E to): Create an EnumSet set containing all enumeration values in the range from the from enumeration value to the to enumeration value. .
Sample code:
package com.collection; import java.util.EnumSet; public class EnumSetTest { public static void main(String[] args) { //1.创建一个包含Session(枚举类)里所有枚举值的EnumSet集合 EnumSet e1 = EnumSet.allOf(Session.class); System.out.println(e1);//[SPRING, SUMMER, FAIL, WINTER] //2.创建一个空EnumSet EnumSet e2 = EnumSet.noneOf(Session.class); System.out.println(e2);//[] //3. add()空EnumSet集合中添加枚举元素 e2.add(Session.SPRING); e2.add(Session.SUMMER); System.out.println(e2);//[SPRING, SUMMER] //4. 以指定枚举值创建EnumSet集合 EnumSet e3 = EnumSet.of(Session.SPRING,Session.FAIL); System.out.println(e3);//[SPRING, FAIL] //5.创建一个包含从from枚举值到to枚举值范围内所有枚举值的EnumSet集合。 EnumSet e4 = EnumSet.range(Session.SPRING,Session.FAIL); System.out.println(e4);//[SPRING, SUMMER, FAIL] //6.创建一个其元素类型与指定EnumSet里元素类型相同的EnumSet集合, // 新EnumSet集合包含原EnumSet集合所不包含的枚举值 EnumSet e5 = EnumSet.complementOf(e4); System.out.println(e5);//[WINTER] } } //创建一个枚举 enum Session{ SPRING, SUMMER, FAIL, WINTER }
Note:
In addition, you can also copy all the items in another EnumSet collection elements to create a new EnumSet collection, or copy all elements from another Collection to create a new EnumSet collection.
Example:
Collection c = new HashSet(); c.clear(); c.add(Session.SPRING); c.add(Session.FAIL); EnumSet e6 = EnumSet.copyOf(c); System.out.println(e6);//[SPRING, FAIL]
Note: When copying all elements in the Collection set to create a new EnumSet collection, all elements in the Collection set must be the same enumeration Enumeration value of the enumeration class.
Error example:
c.add("Java"); e6 = EnumSet.copyOf(c);//java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Enum
Things won are done; joy’s soul lies in the doing.
Getting is completion, the essence of happiness lies in the process.
The above is the detailed content of A brief discussion on EnumSet of Java collections. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











Troubleshooting and solutions to the company's security software that causes some applications to not function properly. Many companies will deploy security software in order to ensure internal network security. ...

Solutions to convert names to numbers to implement sorting In many application scenarios, users may need to sort in groups, especially in one...

Start Spring using IntelliJIDEAUltimate version...

Field mapping processing in system docking often encounters a difficult problem when performing system docking: how to effectively map the interface fields of system A...

When using MyBatis-Plus or other ORM frameworks for database operations, it is often necessary to construct query conditions based on the attribute name of the entity class. If you manually every time...

Conversion of Java Objects and Arrays: In-depth discussion of the risks and correct methods of cast type conversion Many Java beginners will encounter the conversion of an object into an array...

How does the Redis caching solution realize the requirements of product ranking list? During the development process, we often need to deal with the requirements of rankings, such as displaying a...

Detailed explanation of the design of SKU and SPU tables on e-commerce platforms This article will discuss the database design issues of SKU and SPU in e-commerce platforms, especially how to deal with user-defined sales...
