Java 컬렉션의 EnumSet에 대한 간략한 토론
EnumSet
EnumSet은 열거형을 위해 특별히 설계된 컬렉션 클래스입니다. EnumSet의 모든 요소는 다음과 같은 열거형 값을 지정해야 합니다. EnumSet을 생성할 때 명시적 또는 암시적으로 지정되는 열거 유형입니다.
EnumSet의 컬렉션 요소도 Enum의 열거 값 정의 순서에 따라 컬렉션 요소의 순서를 결정합니다. 수업.
EnumSet은 내부적으로 비트 벡터 형식으로 저장되므로 이 저장 형식은 매우 컴팩트하고 효율적이므로 EnumSet 개체는 메모리를 거의 차지하지 않고 매우 효율적으로 실행됩니다. 특히 일괄 작업(containsAll() 및 keepAll() 메서드 호출 등)을 수행할 때 매개 변수도 EnumSet 컬렉션인 경우 일괄 작업의 실행 속도도 매우 빠릅니다.
EnumSet 클래스는 이 클래스의 인스턴스를 생성하기 위해 생성자를 노출하지 않으며 프로그램은 제공되는 클래스 메서드를 통해 EnumSet 객체를 생성해야 합니다.
EnumSet 컬렉션에서는 null 요소 추가를 허용하지 않습니다. null 요소를 삽입하려고 하면 EnumSet에서 NullPointerException 예외가 발생합니다.
EnumSet에 null 요소가 포함되어 있는지 확인하거나 null 요소를 삭제하려고 하면 삭제 작업에서 false가 반환되지 않습니다. null 요소는 삭제됩니다.
방법 소개:
EnumSet allOf( 클래스 elementType): 지정된 열거 클래스의 모든 열거 값을 포함하는 EnumSet 컬렉션을 만듭니다.
EnumSet ComplementOf(EnumSet e): 요소 유형이 지정된 EnumSet의 요소 유형과 동일한 EnumSet 컬렉션을 만듭니다. 새로운 EnumSet 컬렉션에는 원래 EnumSet 컬렉션에 포함되지 않은 이 유형의 열거 클래스의 나머지 열거 값이 포함되어 있습니다. 즉, 새 EnumSet 컬렉션과 원래 EnumSet 컬렉션의 컬렉션 요소의 합은 모두 열거입니다. 열거 클래스의 값).
EnumSet copyOf(Collection c): EnumSet 컬렉션을 생성하려면 일반 컬렉션을 사용하세요.
EnumSet copyOf(EnumSet e): 지정된 EnumSet의 동일한 요소 유형 및 동일한 컬렉션 요소를 사용하여 EnumSet 컬렉션을 만듭니다.
EnumSet noneOf(Class elementType): 요소 유형이 지정된 열거 유형인 빈 EnumSet을 만듭니다.
EnumSet of(E first,E…rest): 하나 이상의 열거 값을 포함하는 EnumSet 컬렉션을 생성하고 여러 열거 값을 전달합니다. 입력한 항목은 동일한 열거 클래스에 속해야 합니다.
EnumSet range(E from,E to): 열거형 값의 EnumSet 컬렉션을 만듭니다. .
샘플 코드:
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 }
참고:
그 밖에도 할 수 있습니다 다른 EnumSet 컬렉션의 모든 요소를 복사하여 새 EnumSet 컬렉션을 만들거나, 다른 컬렉션 컬렉션의 모든 요소를 복사하여 새 EnumSet 컬렉션을 만듭니다.
예:
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]
참고: 새 EnumSet 세트를 생성하기 위해 컬렉션 세트의 모든 요소를 복사하는 경우 컬렉션 세트의 모든 요소는 필수 요소는 동일한 열거 클래스의 열거 값이어야 합니다.
오류 예:
c.add("Java"); e6 = EnumSet.copyOf(c);//java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Enum
모든 일은 끝났습니다. 기쁨의 영혼은 과정에 있습니다.
위 내용은 Java 컬렉션의 EnumSet에 대한 간략한 토론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











일부 애플리케이션이 제대로 작동하지 않는 회사의 보안 소프트웨어에 대한 문제 해결 및 솔루션. 많은 회사들이 내부 네트워크 보안을 보장하기 위해 보안 소프트웨어를 배포 할 것입니다. ...

시스템 도킹의 필드 매핑 처리 시스템 도킹을 수행 할 때 어려운 문제가 발생합니다. 시스템의 인터페이스 필드를 효과적으로 매핑하는 방법 ...

데이터베이스 작업에 MyBatis-Plus 또는 기타 ORM 프레임 워크를 사용하는 경우 엔티티 클래스의 속성 이름을 기반으로 쿼리 조건을 구성해야합니다. 매번 수동으로 ...

IntellijideAultimate 버전을 사용하여 봄을 시작하십시오 ...

많은 응용 프로그램 시나리오에서 정렬을 구현하기 위해 이름으로 이름을 변환하는 솔루션, 사용자는 그룹으로, 특히 하나로 분류해야 할 수도 있습니다.

Java 객체 및 배열의 변환 : 캐스트 유형 변환의 위험과 올바른 방법에 대한 심층적 인 논의 많은 Java 초보자가 객체를 배열로 변환 할 것입니다 ...

데이터베이스 쿼리에 tkmyBatis를 사용하는 경우 쿼리 조건을 구축하기 위해 엔티티 클래스 변수 이름을 우아하게 가져 오는 방법이 일반적인 문제입니다. 이 기사는 고정 될 것입니다 ...

Redis 캐싱 솔루션은 제품 순위 목록의 요구 사항을 어떻게 인식합니까? 개발 과정에서 우리는 종종 a ... 표시와 같은 순위의 요구 사항을 처리해야합니다.
