java
이 튜토리얼에서는 예제를 통해 Java EnumSet 클래스와 다양한 메소드에 대해 알아볼 것입니다.
EnumSet
Java 컬렉션 프레임워크의 클래스는 단일 열거형 요소의 집합 구현을 제공합니다.
EnumSet에 대해 배우기 전에 Java Enum에 대해 알아야 합니다.
Set 인터페이스를 구현합니다.
<시간>
열거형 세트를 생성하려면 java.util.EnumSet
를 가져와야 합니다. 먼저 포장하십시오.
다른 집합 구현과 달리 열거 집합에는 공용 생성자가 없습니다. 열거형 집합을 생성하려면 미리 정의된 메서드를 사용해야 합니다.
allof()
메서드는 지정된 열거형 유형 Size의 모든 값을 포함하는 열거형 집합을 만듭니다. . 예를 들어,
import java.util.EnumSet;
class Main {
// an enum named Size
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
public static void main(String[] args) {
// Creating an EnumSet using allOf()
EnumSet<Size> sizes = EnumSet.allOf(Size.class);
System.out.println("EnumSet: " + sizes);
}
}
출력
EnumSet: [SMALL, MEDIUM, LARGE, EXTRALARGE]
진술을 주목하십시오.
EnumSet<Size> sizes = EnumSet.allOf(Size.class);
여기 Size.class 크기를 나타냅니다. 우리가 만든 열거형.
<시간>
noneOf()
메서드는 빈 열거형 집합을 만듭니다. 예를 들어,
import java.util.EnumSet;
class Main {
// an enum type Size
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
public static void main(String[] args) {
// Creating an EnumSet using noneOf()
EnumSet<Size> sizes = EnumSet.noneOf(Size.class);
System.out.println("Empty EnumSet: " + sizes);
}
}
출력
Empty EnumSet : []
여기에서 sizes라는 빈 열거형을 만들었습니다. .
참고 :열거형 Size의 요소만 삽입할 수 있습니다. 위의 프로그램에서. Size를 사용하여 빈 열거형 세트를 생성했기 때문입니다. 열거.
<시간>
range()
메소드는 e1 사이의 모든 열거형 값을 포함하는 열거형 세트를 생성합니다. 및 e2 두 값을 모두 포함합니다. 예를 들어,
import java.util.EnumSet;
class Main {
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
public static void main(String[] args) {
// Creating an EnumSet using range()
EnumSet<Size> sizes = EnumSet.range(Size.MEDIUM, Size.EXTRALARGE);
System.out.println("EnumSet: " + sizes);
}
}
출력
EnumSet: [MEDIUM, LARGE, EXTRALARGE]<시간>
of()
메서드는 지정된 요소를 포함하는 열거형 집합을 만듭니다. 예를 들어,
import java.util.EnumSet;
class Main {
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
public static void main(String[] args) {
// Using of() with a single parameter
EnumSet<Size> sizes1 = EnumSet.of(Size.MEDIUM);
System.out.println("EnumSet1: " + sizes1);
EnumSet<Size> sizes2 = EnumSet.of(Size.SMALL, Size.LARGE);
System.out.println("EnumSet2: " + sizes2);
}
}
출력
EnumSet1: [MEDIUM] EnumSet2: [SMALL, LARGE]<시간>
EnumSet
클래스는 열거형 집합에서 다양한 요소를 수행할 수 있는 메서드를 제공합니다.
add()
- 열거형 세트에 지정된 열거형 값을 삽입합니다.addAll()
지정된 컬렉션의 모든 요소를 집합에 삽입합니다.예를 들어,
import java.util.EnumSet;
class Main {
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
public static void main(String[] args) {
// Creating an EnumSet using allOf()
EnumSet<Size> sizes1 = EnumSet.allOf(Size.class);
// Creating an EnumSet using noneOf()
EnumSet<Size> sizes2 = EnumSet.noneOf(Size.class);
// Using add method
sizes2.add(Size.MEDIUM);
System.out.println("EnumSet Using add(): " + sizes2);
// Using addAll() method
sizes2.addAll(sizes1);
System.out.println("EnumSet Using addAll(): " + sizes2);
}
}
출력
EnumSet using add(): [MEDIUM] EnumSet using addAll(): [SMALL, MEDIUM, LARGE, EXTRALARGE]
위의 예에서는 addAll()
을 사용했습니다. 열거형 집합 sizes1의 모든 요소를 삽입하는 메서드 열거형 세트 sizes2로 .
ArrayList
과 같은 다른 컬렉션의 요소를 삽입하는 것도 가능합니다. , LinkedList
등을 addAll()
을 사용하여 열거형 세트로 . 그러나 모든 컬렉션은 동일한 열거형 유형이어야 합니다.
열거 세트의 요소에 액세스하려면 iterator()
을 사용할 수 있습니다. 방법. 이 방법을 사용하려면 java.util.Iterator
을 가져와야 합니다. 패키지. 예를 들어,
import java.util.EnumSet;
import java.util.Iterator;
class Main {
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
public static void main(String[] args) {
// Creating an EnumSet using allOf()
EnumSet<Size> sizes = EnumSet.allOf(Size.class);
Iterator<Size> iterate = sizes.iterator();
System.out.print("EnumSet: ");
while(iterate.hasNext()) {
System.out.print(iterate.next());
System.out.print(", ");
}
}
}
출력
EnumSet: SMALL, MEDIUM, LARGE, EXTRALARGE,
참고 :
hasNext()
true
반환 열거형 세트에 다음 요소가 있는 경우next()
열거형 세트의 다음 요소를 반환합니다.remove()
- 열거형 세트에서 지정된 요소를 제거합니다.removeAll()
- 열거형 세트에서 모든 요소를 제거합니다.예를 들어,
import java.util.EnumSet;
class Main {
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
public static void main(String[] args) {
// Creating EnumSet using allOf()
EnumSet<Size> sizes = EnumSet.allOf(Size.class);
System.out.println("EnumSet: " + sizes);
// Using remove()
boolean value1 = sizes.remove(Size.MEDIUM);
System.out.println("Is MEDIUM removed? " + value1);
// Using removeAll()
boolean value2 = sizes.removeAll(sizes);
System.out.println("Are all elements removed? " + value2);
}
}
출력
EnumSet: [SMALL, MEDIUM, LARGE, EXTRALARGE] Is MEDIUM removed? true Are all elements removed? true<시간>
메소드 | 설명 |
---|---|
copyOf() | EnumSet 사본을 생성합니다. |
contains() | EnumSet 검색 지정된 요소에 대해 부울 결과를 반환합니다. |
isEmpty() | EnumSet 인지 확인 비어 있습니다 |
size() | EnumSet 의 크기를 반환합니다. |
clear() | EnumSet 에서 모든 요소를 제거합니다. |
EnumSet
클래스는 Cloneable
도 구현합니다. 및 Serializable
인터페이스.
복제 가능한 인터페이스
EnumSet
클래스의 인스턴스를 복사합니다.
직렬화 가능한 인터페이스
Java 객체가 네트워크를 통해 전송되어야 할 때마다 객체는 비트 또는 바이트로 변환되어야 합니다. Java 객체는 네트워크를 통해 전송할 수 없기 때문입니다.
Serializable
인터페이스를 통해 클래스를 직렬화할 수 있습니다. 이것은 Serializable
를 구현하는 클래스의 객체를 의미합니다. 비트 또는 바이트로 변환할 수 있습니다.
EnumSet
다른 집합 구현(예:HashSet
)보다 열거형 값을 저장하는 효율적인 방법을 제공합니다. , TreeSet
).
열거형 집합은 특정 열거형의 열거형 값만 저장합니다. 따라서 JVM은 세트의 가능한 모든 값을 이미 알고 있습니다.
이것이 열거형 세트가 내부적으로 비트 시퀀스로 구현되는 이유입니다. 비트는 요소가 열거형 세트에 있는지 여부를 지정합니다.
해당 요소가 집합에 있으면 해당 요소의 비트가 켜집니다.
java
자바 데크 인터페이스 이 튜토리얼에서는 Deque 인터페이스, 사용 방법 및 방법에 대해 알아봅니다. Deque Java 컬렉션 프레임워크의 인터페이스는 양방향 대기열의 기능을 제공합니다. Queue를 확장합니다. 인터페이스. 데크 작업 일반 대기열에서 요소는 뒤쪽에서 추가되고 앞쪽에서 제거됩니다. 그러나 deque에서는 전면과 후면 모두에서 요소를 삽입 및 제거할 수 있습니다. . Deque를 구현하는 클래스 Deque의 기능을 사용하려면 인터페이스를 구현하는 클래스를 사용해야 합니다. 배열 데크 링크드리스트
자바 EnumSet 이 튜토리얼에서는 예제를 통해 Java EnumSet 클래스와 다양한 메소드에 대해 알아볼 것입니다. EnumSet Java 컬렉션 프레임워크의 클래스는 단일 열거형 요소의 집합 구현을 제공합니다. EnumSet에 대해 배우기 전에 Java Enum에 대해 알아야 합니다. Set 인터페이스를 구현합니다. EnumSet 생성 열거형 세트를 생성하려면 java.util.EnumSet를 가져와야 합니다. 먼저 포장하십시오. 다른 집합 구현과 달리 열거 집합에는 공용 생성자가 없습니다. 열거형 집합을 생