>Java >java지도 시간 >자바의 열거형

자바의 열거형

WBOY
WBOY원래의
2024-08-30 15:15:44651검색

Enum 세트는 세트 인터페이스의 구현이며, 열거 유형에 대해 Java의 Abstract 클래스를 확장합니다. are Set 컬렉션은 Java에서 열거형을 사용하는 기능을 제공합니다. 열거형 세트는 동기화되지 않습니다. 따라서 요소에 더 빠르게 액세스할 수 있습니다. 열거형 세트는 null 요소 추가를 허용하지 않습니다. null 값을 추가하려고 하면 null 포인터 예외가 발생합니다.

구문:

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

public abstract class EnumSet<E extends Enum<E>> || This is the class decralation of enum set.
EnumSet<E extends Enum<E>> enum1, enum2, enum3, enum4; || Declare different enum.

열거형 세트는 동기화되지 않으므로 마스터에 가깝지만 아래의 동기화 구문을 찾는 컬렉션 클래스 동기화 메서드()를 사용하여 동기화할 수 있습니다.

Collections.synchronizedSet(java.util.Set<T>)
Set<Enum_Type> s = Collections.synchronizedSet(EnumSet.noneOf(EnumClass.class));

Java의 Enumset 메서드

  • static > allOf(Class elementType): 이 메소드는 언급된 모든 요소가 포함된 열거형을 생성하는 데 사용됩니다.
  • EnumSet clone(): 이 메서드는 세트의 복사본을 만드는 데 사용됩니다. 반환 유형은 EnumSet입니다.
  • static > ComplementOf(EnumSet s): 이 메소드는 메소드에 지정된 열거형 세트를 생성하는 데 사용되며, 이 열거형에는 세트에 포함되지 않은 모든 요소가 포함됩니다.
  • static > copyOf(Collection c): 이는 메소드에 지정된 열거형 세트의 사본을 생성합니다. 하지만 컬렉션 매개변수가 필요합니다.
  • static > copyOf(EnumSet s): 이는 열거형 세트로 지정된 열거형을 생성합니다. 그러면 EnumSet가 반환됩니다.
  • static > noneOf(Class elementType): 이는 메소드에 지정된 열거형도 생성합니다. EnumSet를 반환합니다.
  • static > of(E e): 또한 초기 요소로 열거형을 만듭니다. 반환 유형은 EnumSet입니다.
  • static > of(E 우선, E… 나머지): 요소가 포함된 열거형을 생성하고 EnumSet
  • 을 반환합니다.
  • static > of(E e1, E e2): 이 메소드는 언급된 요소로 열거형을 생성합니다. 반환 유형은 EnumSet
  • 입니다.
  • static > of(E e1, E e2, E e3): 이 메서드는 열거형을 생성합니다. 메소드 반환 유형은 EnumSet .
  • static > of(E e1, E e2, E e3, E e4): 이 메소드는 또한 지정된 요소를 사용하여 열거형을 생성합니다. 반환 유형은 EnumSet
  • 입니다.
  • static > of(E e1, E e2, E e3, E e4, E e5): 이 방법은 또한 열거형으로 전달된 지정 요소를 사용하여 열거형을 생성합니다. 반환 유형은 EnumSet
  • 입니다.
  • static > range(E from, E to): 이 방법으로 범위를 지정할 수 있습니다. 그런 다음 새 열거형을 생성합니다. 반환 유형은 EnumSet .

참고:

  • Enum 세트는 다양한 클래스와 인터페이스를 구현합니다. Enum 세트 클래스 선언:
  • 공개 추상 클래스 EnumSet>을 확장합니다. AbstractSet를 확장합니다. 복제 가능, 직렬화 가능 구현

열거형 세트로 구현되는 인터페이스:

  • 복제 가능
  • 설정
  • 직렬화 가능
  • 컬렉션
  • 반복 가능

열거 세트로 확장되는 클래스는 다음과 같습니다.

  • 추상세트

Java의 Enumset 예

다음은 enumset의 예입니다.

예시 #1

아래 예에서 w는 열거형 세트에 요소를 추가하고 있습니다.

코드:

import java.util.EnumSet;
public class EnumsetDemo {
public static void main(String[] args) {
// creating reference
EnumSet<EnumDemo> enum1;
// here we are adding elements to the enum1 which we create above.
enum1 = EnumSet.of(EnumDemo.JAVA, EnumDemo.JAVASCRIPT,
EnumDemo.C, EnumDemo.PHP, EnumDemo.GO, EnumDemo.PYTHON, EnumDemo.TYPESCRIPT);
System.out.println("Enum set 1 containing values are :: ");
System.out.println( enum1);
}
}
enum EnumDemo
{
JAVA, PYTHON, PHP, C, GO, JAVASCRIPT, TYPESCRIPT
};

출력:

자바의 열거형

예시 #2

이 예에서는 sf enum1 값만 사용하여 enum2를 생성합니다. 아래에서 예시를 찾아보세요.

코드:

import java.util.EnumSet;
public class EnumsetDemo {
public static void main(String[] args) {
// creating reference
EnumSet<EnumDemo> enum1;
// here we are adding elements to the enum1 which we create above.
enum1 = EnumSet.of(EnumDemo.JAVA, EnumDemo.JAVASCRIPT,
EnumDemo.C, EnumDemo.PHP, EnumDemo.GO, EnumDemo.PYTHON, EnumDemo.TYPESCRIPT);
System.out.println("Enum set 1 containing values are :: ");
System.out.println( enum1);
// adding value to another enum set using addAll method
EnumSet<EnumDemo> enum2 = EnumSet.allOf(EnumDemo.class);
System.out.println("Enum set 2 containing values are :: ");
System.out.println( enum2);
}
}
enum EnumDemo
{
JAVA, PYTHON, PHP, C, GO, JAVASCRIPT, TYPESCRIPT
};

출력:

자바의 열거형

예시 #3

이 예에서는 enum2에 대한 보완 f enum1을 찾습니다.

코드:

import java.util.EnumSet;
public class EnumsetDemo {
public static void main(String[] args) {
// creating reference
EnumSet<EnumDemo> enum1;
// here we are adding elements to the enum1 which we create above.
enum1 = EnumSet.of(EnumDemo.JAVA, EnumDemo.JAVASCRIPT,
EnumDemo.C, EnumDemo.PHP, EnumDemo.GO, EnumDemo.PYTHON, EnumDemo.TYPESCRIPT);
System.out.println("Enum set 1 containing values are :: ");
System.out.println( enum1);
// finind completents of enum1 to enum2
EnumSet<EnumDemo> enum2 = EnumSet.complementOf(enum1);
System.out.println("Enum set 2 containing values are :: ");
System.out.println( enum2);
}
}
enum EnumDemo
{
JAVA, PYTHON, PHP, C, GO, JAVASCRIPT, TYPESCRIPT
};

출력:

자바의 열거형

Example #4

Specifying range to elements to be copied.

Code:

import java.util.EnumSet;
public class EnumsetDemo {
public static void main(String[] args) {
// creating reference
EnumSet<EnumDemo> enum1;
// here we are adding elements to the enum1 which we create above.
enum1 = EnumSet.of(EnumDemo.JAVA, EnumDemo.JAVASCRIPT,
EnumDemo.C, EnumDemo.PHP, EnumDemo.GO, EnumDemo.PYTHON, EnumDemo.TYPESCRIPT);
System.out.println("Enum set 1 containing values are :: ");
System.out.println( enum1);
// here we are specifing the range to another enum using enum1
EnumSet<EnumDemo> enum2 = EnumSet.range(EnumDemo.PYTHON, EnumDemo.JAVASCRIPT);
System.out.println("Enum set 2 containing values are :: ");
System.out.println( enum2);
}
}
enum EnumDemo
{
JAVA, PYTHON, PHP, C, GO, JAVASCRIPT, TYPESCRIPT
};

Output:

자바의 열거형

Example #5

Making copy from existing enum.

Code:

import java.util.EnumSet;
public class EnumsetDemo {
public static void main(String[] args) {
// creating reference
EnumSet<EnumDemo> enum1;
// here we are adding elements to the enum1 which we create above.
enum1 = EnumSet.of(EnumDemo.JAVA, EnumDemo.JAVASCRIPT,
EnumDemo.C, EnumDemo.PHP, EnumDemo.GO, EnumDemo.PYTHON, EnumDemo.TYPESCRIPT);
System.out.println("Enum set 1 containing values are :: ");
System.out.println( enum1);
// here we are copying elements of enum1 to enum2.
EnumSet<EnumDemo> enum2 = EnumSet.copyOf(enum1);
System.out.println("Enum set 2 containing values are :: ");
System.out.println( enum2);
}
}
enum EnumDemo
{
JAVA, PYTHON, PHP, C, GO, JAVASCRIPT, TYPESCRIPT
};

Output:

자바의 열거형

Conclusion

Java EnumSet is the implementation of the SET interface in java. They are a special type of java collection framework that provides support for enum types in java. We can also make them synchronized as these are not synchronized.

위 내용은 자바의 열거형의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.