java
이 자습서에서는 예제를 통해 Java EnumMap 클래스와 해당 작업에 대해 알아봅니다.
EnumMap
Java 컬렉션 프레임워크의 클래스는 열거형 요소에 대한 맵 구현을 제공합니다.
EnumMap
에서 , 열거형 요소는 키로 사용됩니다. . 지도 인터페이스를 구현합니다.
EnumMap
에 대해 알아보기 전에 , Java Enums에 대해 알아야 합니다.
열거형 맵을 생성하려면 java.util.EnumMap
을 가져와야 합니다. 먼저 패키지. 패키지를 가져온 후 Java에서 열거형 맵을 만드는 방법은 다음과 같습니다.
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);
위의 예에서 sizes라는 이름의 열거형 맵을 만들었습니다. .
여기,
EnumMap
클래스는 열거형 맵에서 다양한 요소를 수행할 수 있는 메서드를 제공합니다.
put()
- 열거형 맵에 지정된 키/값 매핑(항목)을 삽입합니다.putAll()
- 지정된 지도의 모든 항목을 이 지도에 삽입합니다.예를 들어,
import java.util.EnumMap;
class Main {
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
public static void main(String[] args) {
// Creating an EnumMap of the Size enum
EnumMap<Size, Integer> sizes1 = new EnumMap<>(Size.class);
// Using the put() Method
sizes1.put(Size.SMALL, 28);
sizes1.put(Size.MEDIUM, 32);
System.out.println("EnumMap1: " + sizes1);
EnumMap<Size, Integer> sizes2 = new EnumMap<>(Size.class);
// Using the putAll() Method
sizes2.putAll(sizes1);
sizes2.put(Size.LARGE, 36);
System.out.println("EnumMap2: " + sizes2);
}
}
출력
EnumMap1: {SMALL=28, MEDIUM=32} EnumMap2: {SMALL=28, MEDIUM=32, LARGE=36}
위의 예에서는 putAll()
을 사용했습니다. 열거형 맵 sizes1의 모든 요소를 삽입하는 메소드 size2의 열거형 맵으로 .
HashMap
과 같은 다른 맵의 요소를 삽입하는 것도 가능합니다. , TreeMap
등을 putAll()
를 사용하여 열거형 맵에 추가합니다. . 그러나 모든 맵은 동일한 열거형 유형이어야 합니다.
1. entrySet(), keySet() 및 values() 사용
entrySet()
- 열거형 맵의 모든 키/값 매핑(항목) 집합을 반환합니다.keySet()
- 열거형 맵의 모든 키 집합을 반환합니다.values()
- 열거형 맵의 모든 값 집합을 반환합니다.예를 들어,
import java.util.EnumMap;
class Main {
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
public static void main(String[] args) {
// Creating an EnumMap of the Size enum
EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);
sizes.put(Size.SMALL, 28);
sizes.put(Size.MEDIUM, 32);
sizes.put(Size.LARGE, 36);
sizes.put(Size.EXTRALARGE, 40);
System.out.println("EnumMap: " + sizes);
// Using the entrySet() Method
System.out.println("Key/Value mappings: " + sizes.entrySet());
// Using the keySet() Method
System.out.println("Keys: " + sizes.keySet());
// Using the values() Method
System.out.println("Values: " + sizes.values());
}
}
출력
EnumMap: {SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40} Key/Value mappings: [SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40] Keys: [SMALL, MEDIUM, LARGE, EXTRALARGE] Values: [28, 32, 36, 40]
2. get() 메서드 사용
get()
메소드는 지정된 키와 연관된 값을 리턴합니다. null
을 반환합니다. 지정된 키를 찾을 수 없는 경우.
예를 들어,
import java.util.EnumMap;
class Main {
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
public static void main(String[] args) {
// Creating an EnumMap of the Size enum
EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);
sizes.put(Size.SMALL, 28);
sizes.put(Size.MEDIUM, 32);
sizes.put(Size.LARGE, 36);
sizes.put(Size.EXTRALARGE, 40);
System.out.println("EnumMap: " + sizes);
// Using the get() Method
int value = sizes.get(Size.MEDIUM);
System.out.println("Value of MEDIUM: " + value);
}
}
출력
EnumMap: {SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40} Value of MEDIUM: 32<시간>
remove(key)
- 지도에서 지정된 키와 관련된 항목을 반환하고 제거합니다.remove(key, value)
- 지정된 키가 지정된 값에 매핑되고 부울 값을 반환하는 경우에만 맵에서 항목을 제거합니다.예를 들어,
import java.util.EnumMap;
class Main {
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
public static void main(String[] args) {
// Creating an EnumMap of the Size enum
EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);
sizes.put(Size.SMALL, 28);
sizes.put(Size.MEDIUM, 32);
sizes.put(Size.LARGE, 36);
sizes.put(Size.EXTRALARGE, 40);
System.out.println("EnumMap: " + sizes);
// Using the remove() Method
int value = sizes.remove(Size.MEDIUM);
System.out.println("Removed Value: " + value);
boolean result = sizes.remove(Size.SMALL, 28);
System.out.println("Is the entry {SMALL=28} removed? " + result);
System.out.println("Updated EnumMap: " + sizes);
}
}
출력
EnumMap: {SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40} Removed Value: 32 Is the entry {SMALL=28} removed? True Updated EnumMap: {LARGE=36, EXTRALARGE=40}<시간>
replace(key, value)
- 지정된 key와 연관된 값을 대체합니다. 새로운 값으로 replace(key, old, new)
- 이전 대체 new 값 old인 경우에만 값 값이 이미 지정된 key와 연결되어 있습니다. replaceAll(function)
- 맵의 각 값을 지정된 함수의 결과로 바꿉니다.
import java.util.EnumMap;
class Main {
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
public static void main(String[] args) {
// Creating an EnumMap of the Size enum
EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);
sizes.put(Size.SMALL, 28);
sizes.put(Size.MEDIUM, 32);
sizes.put(Size.LARGE, 36);
sizes.put(Size.EXTRALARGE, 40);
System.out.println("EnumMap: " + sizes);
// Using the replace() Method
sizes.replace(Size.MEDIUM, 30);
sizes.replace(Size.LARGE, 36, 34);
System.out.println("EnumMap using replace(): " + sizes);
// Using the replaceAll() Method
sizes.replaceAll((key, oldValue) -> oldValue + 3);
System.out.println("EnumMap using replaceAll(): " + sizes);
}
}
출력
EnumMap: {SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40} EnumMap using replace(): {SMALL=28, MEDIUM=30, LARGE=34, EXTRALARGE=40} EnumMap using replaceAll(): {SMALL=31, MEDIUM=33, LARGE=37, EXTRALARGE=43}
위의 프로그램에서 다음 문장을 주목하십시오.
sizes.replaceAll((key, oldValue) -> oldValue + 3);
여기에서 메소드는 맵의 모든 항목에 액세스합니다. 그런 다음 모든 값을 람다 식에서 제공하는 새 값으로 바꿉니다.
<시간>메소드 | 설명 |
---|---|
clone() | EnumMap 사본을 생성합니다. |
containsKey() | EnumMap 검색 지정된 키에 대해 부울 결과를 반환합니다. |
containsValue() | EnumMap 검색 지정된 값에 대해 부울 결과를 반환합니다. |
size() | EnumMap 의 크기를 반환합니다. |
clear() | EnumMap 에서 모든 항목을 제거합니다. |
EnumSet 및 EnumMap
모두 클래스는 열거형 값을 저장하기 위한 데이터 구조를 제공합니다. 그러나 그들 사이에는 몇 가지 중요한 차이점이 있습니다.
allOf()
과 같은 사전 정의된 메서드를 사용하여 생성됩니다. , noneOf()
, of()
등. 그러나 열거형 맵은 생성자를 사용하여 생성됩니다.
EnumMap
클래스는 Cloneable
도 구현합니다. 및 Serializable
인터페이스.
복제 가능한 인터페이스
EnumMap
클래스의 인스턴스를 복사합니다.
직렬화 가능한 인터페이스
Java 객체가 네트워크를 통해 전송되어야 할 때마다 객체는 비트 또는 바이트로 변환되어야 합니다. Java 객체는 네트워크를 통해 전송할 수 없기 때문입니다.
Serializable
인터페이스를 통해 클래스를 직렬화할 수 있습니다. 이것은 Serializable
을 구현하는 클래스의 객체를 의미합니다. 비트 또는 바이트로 변환할 수 있습니다.
java
자바 대기열 인터페이스 이 자습서에서는 Java Queue 인터페이스와 해당 메서드에 대해 알아봅니다. Queue Java 컬렉션 프레임워크의 인터페이스는 큐 데이터 구조의 기능을 제공합니다. Collection 확장 인터페이스. 대기열을 구현하는 클래스 Queue 이후 인터페이스이므로 직접 구현할 수 없습니다. Queue의 기능을 사용하려면 , 이를 구현하는 클래스를 사용해야 합니다. 배열 데크 링크드리스트 우선순위 대기열 Queue를 확장하는 인터페이스 Queue 인터페이스는 다양한 하위 인터페이스로 확장됩니
자바 열거 맵 이 자습서에서는 예제를 통해 Java EnumMap 클래스와 해당 작업에 대해 알아봅니다. EnumMap Java 컬렉션 프레임워크의 클래스는 열거형 요소에 대한 맵 구현을 제공합니다. EnumMap에서 , 열거형 요소는 키로 사용됩니다. . 지도 인터페이스를 구현합니다. EnumMap에 대해 알아보기 전에 , Java Enums에 대해 알아야 합니다. EnumMap 만들기 열거형 맵을 생성하려면 java.util.EnumMap을 가져와야 합니다. 먼저 패키지. 패키지를 가져온 후 Java에서 열거형 맵