>  기사  >  Java  >  열거 매핑 작업을 위해 Java에서 EnumMap 함수를 사용하는 방법

열거 매핑 작업을 위해 Java에서 EnumMap 함수를 사용하는 방법

WBOY
WBOY원래의
2023-06-26 18:23:562066검색

Java에서 Enum 유형은 열거 상수를 나타내는 데 사용할 수 있는 매우 유용한 데이터 유형입니다. EnumMap은 Enum 유형의 키-값 쌍만 저장할 수 있는 Java의 특수 Map 구현입니다. 이 기사에서는 EnumMap 함수의 사용법과 열거 매핑 작업을 위해 Java에서 EnumMap을 사용하는 방법을 소개합니다.

  1. EnumMap 함수의 기본 사용법

EnumMap4e213ada2520d4e5ae4f03783c413883을 확장하며, V>는 Java의 일반 클래스입니다. 여기서 K는 열거 유형의 키를 나타내고 V는 키에 매핑된 값을 나타냅니다. EnumMap이 생성된 후 해당 키는 동일한 열거 유형에서 와야 하며 모든 값은 동일한 유형이어야 합니다. EnumMap 함수의 기본 사용법은 다음과 같습니다.

EnumMap<Weekday, String> enumMap = new EnumMap<>(Weekday.class);
enumMap.put(Weekday.MONDAY, "星期一");
enumMap.put(Weekday.TUESDAY, "星期二");
enumMap.put(Weekday.WEDNESDAY, "星期三");
enumMap.put(Weekday.THURSDAY, "星期四");
enumMap.put(Weekday.FRIDAY, "星期五");
enumMap.put(Weekday.SATURDAY, "星期六");
enumMap.put(Weekday.SUNDAY, "星期日");

먼저 EnumMap 객체 enumMap을 생성하고 EnumMap의 put 메소드를 통해 각 요일과 해당 중국어 이름을 EnumMap에 저장했습니다. 이러한 방식으로 기본 EnumMap의 생성 및 초기화가 완료되었습니다.

  1. EnumMap 함수 초기화

위 코드 예제에서는 모든 값을 자동으로 null로 초기화하는 EnumMap의 기본 생성자를 사용합니다. 실제로 초기화를 위해 EnumMap의 다른 생성자를 사용할 수도 있습니다. 이 생성자는 초기값을 설정하고 EnumMap의 모든 값을 이 초기값으로 초기화합니다. 다음은 EnumMap 함수의 초기화 샘플 코드입니다.

EnumMap<Weekday, String> enumMap = new EnumMap<>(Weekday.class);
enumMap.put(Weekday.MONDAY, "星期一");
enumMap.put(Weekday.TUESDAY, "星期二");
enumMap.put(Weekday.WEDNESDAY, "星期三");
enumMap.put(Weekday.THURSDAY, "星期四");
enumMap.put(Weekday.FRIDAY, "星期五");
enumMap.put(Weekday.SATURDAY, "星期六");
enumMap.put(Weekday.SUNDAY, "星期日");

// 使用初始化值,将所有键值对的值都设置为"假期" 
EnumMap defaultEnumMap = new EnumMap<>(Weekday.class);
defaultEnumMap.putAll(Collections.singletonMap(null, "假期"));
EnumMap enumMapWithDefaultValue = new EnumMap<>(defaultEnumMap);
enumMapWithDefaultValue.putAll(enumMap);

위 샘플 코드에서는 Collections.singletonMap 메서드를 사용하여 키가 null이고 값이 "holiday"인 하나의 키-값 쌍만 포함하는 Map을 생성했습니다. ". 그런 다음 이 맵을 초기 값으로 사용하고 새 EnumMap 개체 enumMapWithDefaultValue를 만든 다음 이전에 만든 enumMap의 키-값 쌍을 이 새 EnumMap 개체에 복사합니다.

이 샘플 코드를 통해 EnumMap의 생성자를 사용하여 초기화하는 방법과 다른 Map을 초기 값으로 사용하여 새 EnumMap을 생성하는 방법을 이해할 수 있습니다.

  1. EnumMap 함수 순회

EnumMap의 모든 요소 순회는 일반적으로 필수적인 작업입니다. 이 작업을 수행하기 위해 Java에서 반복자를 사용할 수 있습니다. 다음은 EnumMap 순회를 위한 샘플 코드입니다.

EnumMap<Weekday, String> enumMap = new EnumMap<>(Weekday.class);
enumMap.put(Weekday.MONDAY, "星期一");
enumMap.put(Weekday.TUESDAY, "星期二");
enumMap.put(Weekday.WEDNESDAY, "星期三");
enumMap.put(Weekday.THURSDAY, "星期四");
enumMap.put(Weekday.FRIDAY, "星期五");
enumMap.put(Weekday.SATURDAY, "星期六");
enumMap.put(Weekday.SUNDAY, "星期日");

// 使用迭代器遍历EnumMap中的所有键值对
Iterator> iterator = enumMap.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry entry = iterator.next();
    Weekday key = entry.getKey();
    String value = entry.getValue();
    System.out.println(key + ": " + value);
}

// 使用foreach循环遍历EnumMap中的所有值
for (String value : enumMap.values()) {
    System.out.println(value);
}

이 샘플 코드에서는 Java의 반복자를 사용하여 EnumMap의 모든 키-값 쌍을 순회합니다. 먼저 EnumMap의entrySet을 얻은 다음,entrySet에서 반환된 반복자를 사용하여 모든 키-값 쌍을 순서대로 탐색합니다. 각 키-값 쌍에 대해 getKey 메서드를 사용하여 키를 가져오고 getValue 메서드를 사용하여 값을 가져와 콘솔에 출력합니다.

또한 foreach 루프를 사용하여 EnumMap의 모든 값을 반복할 수도 있습니다. 값을 얻기 위해 열거형 유형을 키로 사용하면 됩니다. 이 방법을 사용하면 키를 얻기 위해 getKey 메서드를 자주 사용하는 것을 피할 수 있습니다.

  1. EnumMap 함수의 실제 응용

위에 소개된 기본 사용법 외에도 EnumMap 함수에는 많은 실제 응용 시나리오가 있습니다.

4.1 열거형 매핑 작업

EnumMap의 가장 일반적인 용도는 열거형 유형을 다른 값에 매핑하는 것입니다. 예를 들어 다음 샘플 코드에서는 열거형 Weekday를 숫자(0-6)에 매핑합니다.

public enum Weekday {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

// 使用EnumMap将Weekday枚举映射到数字
EnumMap<Weekday, Integer> enumMap = new EnumMap<>(Weekday.class);
enumMap.put(Weekday.MONDAY, 0);
enumMap.put(Weekday.TUESDAY, 1);
enumMap.put(Weekday.WEDNESDAY, 2);
enumMap.put(Weekday.THURSDAY, 3);
enumMap.put(Weekday.FRIDAY, 4);
enumMap.put(Weekday.SATURDAY, 5);
enumMap.put(Weekday.SUNDAY, 6);

4.2 열거형 카운터

어떤 경우에는 특정 열거형 수량을 계산하기 위해 카운터를 구현해야 합니다. EnumMap은 이 함수를 쉽게 구현할 수 있습니다. 샘플 코드는 다음과 같습니다.

public enum Gender {
    MALE, FEMALE
}

// 使用EnumMap实现枚举类型计数器
EnumMap<Gender, Integer> genderCount = new EnumMap<>(Gender.class);
genderCount.put(Gender.MALE, 0);
genderCount.put(Gender.FEMALE, 0);

List<Gender> genderList = Arrays.asList(
    Gender.MALE, 
    Gender.MALE, 
    Gender.MALE, 
    Gender.FEMALE, 
    Gender.FEMALE
);

for (Gender gender : genderList) {
    genderCount.put(gender, genderCount.get(gender) + 1);
}

System.out.println("男性数量:" + genderCount.get(Gender.MALE));
System.out.println("女性数量:" + genderCount.get(Gender.FEMALE));

위 샘플 코드에서는 먼저 Gender 유형 수를 기록하기 위해 EnumMap 개체 GenderCount를 생성했습니다. 다음으로 EnumMap의 put 메소드를 사용하여 각 Gender 유형의 수를 0으로 초기화합니다. 그런 다음 목록을 사용하여 성별 목록을 시뮬레이션하고 목록을 순회하여 각 성별의 발생 횟수를 계산합니다. 마지막으로 남성과 여성의 수를 출력합니다.

4.3 열거형 계산기

열거형 카운터와 유사하게 EnumMap은 열거형의 덧셈과 뺄셈을 구현하는 데에도 사용할 수 있습니다. 예를 들어 다음 샘플 코드에서는 특정 단어에 특정 영어 문자가 나타나는 횟수를 계산하는 간단한 계산기를 구현했습니다.

public enum Letter {
    A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
}

// 使用EnumMap实现枚举类型计算器
EnumMap<Letter, Integer> letterCount = new EnumMap<>(Letter.class);
for (Letter letter : Letter.values()) {
    letterCount.put(letter, 0);
}

String word = "Hello, World!";
for (int i = 0; i < word.length(); i++) {
    char c = word.charAt(i);
    if (c >= 'A' && c <= 'Z') {
        Letter letter = Letter.valueOf(String.valueOf(c));
        letterCount.put(letter, letterCount.get(letter) + 1);
    }
}

for (Letter letter : Letter.values()) {
    if (letterCount.get(letter) > 0) {
        System.out.println(letter + ": " + letterCount.get(letter));
    }
}

위 샘플 코드에서는 먼저 기록에 사용되는 EnumMap 개체 letterCount 를 만들었습니다. 각 문자가 나타나는 횟수입니다. 그런 다음 for 루프를 사용하여 Letter 열거 유형을 반복하고 각 문자의 초기 값을 0으로 설정합니다. 다음으로 단어를 시뮬레이션하기 위해 문자열 단어를 정의했습니다. 단어의 각 문자를 반복하여 대문자인지 여부를 확인합니다. 대문자인 경우 Letter.valueOf 메서드를 사용하여 Letter 유형으로 변환하고 해당 문자 유형 수를 letterCount에 누적합니다. 마지막으로 Letter 열거 유형을 반복하고 발생 횟수가 0보다 크고 해당 횟수보다 큰 문자를 출력합니다.

Summary

이번 글에서는 EnumMap 함수의 기본적인 사용법, 초기화, 순회, 실제 적용 등에 대해 소개했습니다. EnumMap은 Java에서 매우 실용적인 Map 구현입니다. Enum 유형과 함께 사용하여 열거 매핑, 열거 유형 통계, 계산기 및 기타 응용 프로그램을 구현할 수 있습니다. EnumMap의 사용법을 익히면 Java 프로그램의 개발 효율성과 코드 품질을 향상시키는 데 도움이 됩니다.

위 내용은 열거 매핑 작업을 위해 Java에서 EnumMap 함수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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