Computer >> Máy Tính >  >> Lập trình >> Java

Lớp EnumMap trong Java

Lớp java.util.EnumMap là một triển khai Bản đồ chuyên biệt để sử dụng với các khóa enum. Sau đây là những điểm quan trọng về EnumMap -

  • Tất cả các khóa trong một bản đồ enum phải đến từ một loại enum duy nhất được chỉ định, rõ ràng hoặc ngầm định, khi bản đồ được tạo.

  • Bản đồ enum được duy trì theo thứ tự tự nhiên của các khóa của chúng.

  • EnumMap không được đồng bộ hóa. Nếu nhiều luồng truy cập đồng thời vào một bản đồ enum và ít nhất một trong các luồng sửa đổi bản đồ, thì nó sẽ được đồng bộ hóa bên ngoài.

Sau đây là các hàm tạo của lớp EnumMap -

Sr.No Khối mã lệnh &Mô tả
1 EnumMap (Class keyType)
Hàm tạo này tạo một bản đồ enum trống với loại khóa được chỉ định.
2 EnumMap (EnumMap m)
Hàm tạo này tạo một ánh xạ enum có cùng kiểu khóa với bản đồ enum được chỉ định, ban đầu chứa các ánh xạ giống nhau (nếu có).
3 EnumMap (Bản đồ m)
Hàm tạo này tạo một bản đồ enum được khởi tạo từ bản đồ đã chỉ định.

Ví dụ

Hãy để chúng tôi xem một ví dụ -

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);
   }
}

Đầu ra

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

Ví dụ

Hãy để chúng tôi xem một ví dụ khác, trong đó chúng tôi đang hiển thị số lượng ánh xạ khóa-giá trị trong Bản đồ -

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());
   }
}

Đầu ra

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