Java教程

Java EnumMap</h1>

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

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: 是此Map维护的键的类型。 V: 。这是映射值的类型。

Java EnumMap类的构造函数

构造函数 说明
EnumMap(Class <K> keyType) 它用于创建具有指定键类型的空枚举映射。
EnumMap(EnumMap <k,? extends v> m) 用于创建具有与指定枚举图相同的键类型的枚举图。
EnumMap(Map <k,? extends v> m) 用于创建从指定映射初始化的枚举映射。

Java EnumMap类的方法

方法 说明
clear() 它用于清除Map中的所有映射。
clone() 用于将一个Map的映射值复制到另一张Map。
containsKey() 用于检查此映射中是否存在指定的密钥。
containsValue() 它用于检查一个或多个键是否与给定值关联。
entrySet() 它用于创建EnumMap中包含的一组元素。
equals() 用于比较两个映射是否相等。
get() 用于获取指定键的映射值。
hashCode() 它用于获取EnumMap的哈希码值。
keySet() 它用于获取Map中包含的键的设置视图。
size() 用于获取EnumMap的大小。
Values() 它用于创建此映射中包含的值的集合视图。
put() 用于在此EnumMap中将给定值与给定键相关联。
putAll() 用于将所有映射从一个EnumMap复制到新的EnumMap。
remove() 如果存在给定密钥,则用于从EnumMap中删除给定密钥的映射。

Java EnumMap示例

import java.util.*;
public class EnumMapExample {
    public enum Days {
    Monday, Tuesday, Wednesday, Thursday };
    public static void main(String[] args) {
        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");
        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 {
    public enum Key{One, Two, Three };
    public static void main(String[] args) {
        EnumMap<Key, Book> map = new EnumMap<Key, Book>(Key.class);
        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);
        Map map.put(Key.One, b1);
        map.put(Key.Two, b2);
        map.put(Key.Three, b3);
        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
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4