在这篇文章中,我们将了解Java中EnumMap的全部内容。什么是EnumMap,如何用例子来使用它?
像大多数集合的实现一样,EnumMap是不同步的。如果多个线程同时访问一个枚举图,并且至少有一个线程修改了该枚举图,那么它应该在外部进行同步。
例子。
Map<EnumKey, V> m
= Collections.synchronizedMap(new EnumMap<EnumKey, V>(...));
在这个例子中, 我们将使用Days枚举, 把所有预定义的日子作为EnumMap的键。
import java.util.EnumMap;
import java.util.Map.Entry;
//*/*
/* EnumMap Demonstration Example
/* @author Ramesh Fadatare
/*
/*/
public class EnumMapExample {
enum Days {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;
}
public static void main(final String[] args) {
final EnumMap<Days, String> enumMap = new EnumMap<>(Days.class);
enumMap.put(Days.SUNDAY, "Its Sunday!!");
enumMap.put(Days.MONDAY, "Its Monday!!");
enumMap.put(Days.TUESDAY, "Its Tuesday!!");
enumMap.put(Days.WEDNESDAY, "Its Wednesday!!");
enumMap.put(Days.THURSDAY, "Its Thursday!!");
enumMap.put(Days.FRIDAY, "Its Friday!!");
enumMap.put(Days.SATURDAY, "Its Saturday!!");
for(final Entry<Days, String> entry : enumMap.entrySet()){
System.out.println(" Key -> " + entry.getKey().SUNDAY);
System.out.println("Value - >" + entry.getValue());
}
}
}
输出:
Key -> SUNDAY
Value - >Its Sunday!!
Key -> SUNDAY
Value - >Its Monday!!
Key -> SUNDAY
Value - >Its Tuesday!!
Key -> SUNDAY
Value - >Its Wednesday!!
Key -> SUNDAY
Value - >Its Thursday!!
Key -> SUNDAY
Value - >Its Friday!!
Key -> SUNDAY
Value - >Its Saturday!!
。
我们知道,每个项目都有一个列表状态,如一个项目是活动的、非活动的、关闭的、开始的等等。让我们创建一个ProjectStatus Enum,作为每个项目的关键。让我们用一个例子来证明这一点。
import java.util.EnumMap;
import java.util.Map.Entry;
//*/*
/* EnumMap Demonstration Example
/* @author Ramesh Fadatare
/*
/*/
public class EnumMapExample2 {
public static void main(final String[] args) {
final EnumMap<ProjectStatus, Project> enumMap = new EnumMap<>(ProjectStatus.class);
enumMap.put(ProjectStatus.ACTIVE, new Project(100, "Customer Management System", "Customer Management System"));
enumMap.put(ProjectStatus.INACTIVE,
new Project(200, "Employee Management System", "Employee Management System"));
for (final Entry<ProjectStatus, Project> entry : enumMap.entrySet()) {
final ProjectStatus projectStatus = entry.getKey();
System.out.println(" Key -> " + projectStatus.name());
final Project project = entry.getValue();
System.out.println("Value - >" + project.toString());
}
}
enum ProjectStatus {
ACTIVE, INACTIVE
}
}
class Project {
private int id;
private String name;
private String desc;
public Project(final int id, final String name, final String desc) {
super();
this.id = id;
this.name = name;
this.desc = desc;
}
public int getId() {
return id;
}
public void setId(final int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
public String getDesc() {
return desc;
}
public void setDesc(final String desc) {
this.desc = desc;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "[project id : " + this.id + ", project name : "
+ this.name + ", project desc : " + this.desc + " ]";
}
}
输出:
Key -> ACTIVE
Value - >[project id : 100, project name : Customer Management System, project desc : Customer Management System ]
Key -> INACTIVE
Value - >[project id : 200, project name : Employee Management System, project desc : Employee Management System ]
。
###参考
https://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.javaguides.net/2018/08/enummap-in-java.html
内容来源于网络,如有侵权,请联系作者删除!