个性化阅读
专注于IT技术分析

Java EnumMap类

本文概述

Java EnumMap类是枚举键的专用Map实现。它继承了Enum和AbstractMap类。

EnumMap类层次结构

EnumMap类的层次结构如下图所示。

EnumMap类层次结构

EnumMap类声明

我们来看一下java.util.EnumMap类的声明。

public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> implements Serializable, Cloneable

EnumMap类参数

让我们看一下java.util.EnumMap类的参数。

  • K:这是此地图维护的键的类型。
  • V:这是映射值的类型。

Java EnumMap类的构造方法

建设者 描述
EnumMap(Class<K> keyType) 它用于创建具有指定键类型的空枚举映射。
EnumMap(EnumMap <K, 扩展为V> m) 它用于创建具有与指定枚举图相同的键类型的枚举图。
EnumMap(Map <K , ?扩展V> m) 它用于创建从指定映射表初始化的枚举映射表。

Java EnumMap类的方法

序号 方法 描述
1 clear() 它用于清除地图中的所有映射。
2 clone() 它用于将一个映射的映射值复制到另一个映射。
3 containsKey() 用于检查此映射中是否存在指定的密钥。
4 containsValue() 它用于检查一个或多个键是否与给定值相关联。
5 entrySet() 它用于创建EnumMap中包含的一组元素。
6 equals() 它用于比较两个映射是否相等。
7 get() 它用于获取指定键的映射值。
8 hashCode() 它用于获取EnumMap的哈希码值。
9 keySet() 它用于获取地图中包含的键的设置视图。
10 size() 它用于获取EnumMap的大小。
11 Values() 它用于创建此映射中包含的值的集合视图。
12 put() 它用于在此EnumMap中将给定值与给定键相关联。
13 putAll() 它用于将所有映射从一个EnumMap复制到新的EnumMap。
14 remove() 如果存在给定键, 则用于从EnumMap中删除给定键的映射。

Java EnumMap示例

import java.util.*;
public class EnumMapExample {
   // create an enum
   public enum Days {
   Monday, Tuesday, Wednesday, Thursday
   };
   public static void main(String[] args) {
   //create and populate enum map
   EnumMap<Days, String> map = new EnumMap<Days, String>(Days.class);
   map.put(Days.Monday, "1");
   map.put(Days.Tuesday, "2");
   map.put(Days.Wednesday, "3");
   map.put(Days.Thursday, "4");
   // print the map
   for(Map.Entry m:map.entrySet()){  
	   System.out.println(m.getKey()+" "+m.getValue());  
	  } 
   }
}

输出:

Monday 1
Tuesday 2
Wednesday 3
Thursday 4

Java EnumMap示例:书籍

import java.util.*;  
class Book {  
int id;  
String name, author, publisher;  
int quantity;  
public Book(int id, String name, String author, String publisher, int quantity) {  
    this.id = id;  
    this.name = name;  
    this.author = author;  
    this.publisher = publisher;  
    this.quantity = quantity;  
}  
}  
public class EnumMapExample { 
// Creating enum
	public enum Key{
		   One, Two, Three
		   };
public static void main(String[] args) {  
	EnumMap<Key, Book> map = new EnumMap<Key, Book>(Key.class);
    // Creating Books  
    Book b1=new Book(101, "Let us C", "Yashwant Kanetkar", "BPB", 8);  
    Book b2=new Book(102, "Data Communications & Networking", "Forouzan", "Mc Graw Hill", 4);  
    Book b3=new Book(103, "Operating System", "Galvin", "Wiley", 6);  
    // Adding Books to Map 
       map.put(Key.One, b1);
	   map.put(Key.Two, b2);
	   map.put(Key.Three, b3);
    // Traversing EnumMap
	   for(Map.Entry<Key, Book> entry:map.entrySet()){    
	        Book b=entry.getValue();  
	        System.out.println(b.id+" "+b.name+" "+b.author+" "+b.publisher+" "+b.quantity);   
	    }     
}  
}

输出:

101 Let us C Yashwant Kanetkar BPB 8
102 Data Communications & Networking Forouzan Mc Graw Hill 4
103 Operating System Galvin Wiley 6
赞(0)
未经允许不得转载:srcmini » Java EnumMap类

评论 抢沙发

评论前必须登录!