Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java의 EnumMap 클래스

<시간/>

java.util.EnumMap 클래스는 열거형 키와 함께 사용하기 위한 특수한 Map 구현입니다. 다음은 EnumMap에 대한 중요 사항입니다 -

  • 열거형 맵의 모든 키는 맵이 생성될 때 명시적으로 또는 암시적으로 지정된 단일 열거형 유형에서 가져와야 합니다.

  • 열거형 맵은 키의 자연스러운 순서로 유지됩니다.

  • EnumMap이 동기화되지 않았습니다. 여러 스레드가 enum 맵에 동시에 액세스하고 스레드 중 하나 이상이 맵을 수정하는 경우 외부에서 동기화해야 합니다.

다음은 EnumMap 클래스의 생성자입니다 -

Sr.No 생성자 및 설명
1 EnumMap(클래스 키 유형)
이 생성자는 지정된 키 유형으로 빈 열거형 맵을 만듭니다.
2 EnumMap(EnumMap m)
이 생성자는 처음에 동일한 매핑(있는 경우)을 포함하는 지정된 열거형 맵과 동일한 키 유형으로 열거형 맵을 만듭니다.
3 EnumMap(Map m)
이 생성자는 지정된 맵에서 초기화된 열거형 맵을 만듭니다.

예시

예를 들어 보겠습니다 -

import java.util.EnumMap;
public class Demo {
   // create an enum
   public enum Numbers {
      ONE, TWO, THREE, FOUR, FIVE
   };
   public static void main(String[] args) {
      EnumMap<Numbers, String> map1 = new EnumMap<Numbers, String>(Numbers.class);
      EnumMap<Numbers, String> map2 = new EnumMap<Numbers, String>(Numbers.class);
      // associate values in map1
      map1.put(Numbers.ONE, "1");
      map1.put(Numbers.TWO, "2");
      map1.put(Numbers.THREE, "3");
      map1.put(Numbers.FOUR, "4");
      // print the whole map
      System.out.println("map1:" + map1);
      // clone map1 to map2
      map2 = map1.clone();
      // print map2
      System.out.println("map2:" + map2);
   }
}

출력

map1:{ONE=1, TWO=2, THREE=3, FOUR=4}
map2:{ONE=1, TWO=2, THREE=3, FOUR=4}

예시

Map에서 키-값 매핑 수를 표시하는 또 다른 예를 살펴보겠습니다.

import java.util.*;
public class EnumMapDemo {
   // create an enum
   public enum Numbers {
      ONE, TWO, THREE, FOUR, FIVE
   };
   public static void main(String[] args) {
      EnumMap<Numbers, String> map = new EnumMap<Numbers, String>(Numbers.class);
      // assosiate values in map
      map.put(Numbers.ONE, "1");
      map.put(Numbers.TWO, "2");
      map.put(Numbers.THREE, "3");
      map.put(Numbers.FOUR, "4");
      // print the map
      System.out.println("Map: " + map);
      // print the number of mappings of this map
      System.out.println("Number of mappings:" + map.size());
      // remove value from Numbers.THREE
      map.put(Numbers.FIVE, "5");
      // print the new number of mappings of this map
      System.out.println("Number of mappings:" + map.size());
   }
}

출력

Map: {ONE=1, TWO=2, THREE=3, FOUR=4}
Number of mappings:4
Number of mappings:5