什么是EnumMap
Map接口的实现,其key-value映射中的key是Enum类型;
简单示例
比较简单,源代码就不一一添加注释了,简单地说,就是一个对象数组;
这里稍微了解一下怎么使用就好了,下面列出一些方法的调用示例:
package com.pichen.collection;
import java.util.EnumMap;
import java.util.Map;
import java.util.Map.Entry;
enum Operate{
ADD, UPDATE, DELETE;
}
public class Main {
public static void main(String[] args) {
Map<Operate, String> map = new EnumMap<Operate, String>(Operate.class);
//put方法
map.put(Operate.ADD, "add operate");
map.put(Operate.UPDATE, "update operate");
map.put(Operate.DELETE, "delete operate");
//重写了toString方法
System.out.println(map);
//size方法
System.out.println(map.size());
System.out.println(map.containsKey(Operate.UPDATE));
System.out.println(map.containsValue("update operate"));
System.out.println(map.get(Operate.DELETE));
//remove
map.remove(Operate.UPDATE);
System.out.println(map);
//key集合
for(Operate operate:map.keySet()){
System.out.print(operate + " ");
}
System.out.println();
//value集合
for(String obj:map.values()){
System.out.print(obj + ",");
}
System.out.println();
//key-value集合
for(Entry<Operate, String> entry:map.entrySet()){
System.out.print(entry.getKey() + ": " + entry.getValue() + ", ");
}
}
}
输出结果:
{ADD=add operate, UPDATE=update operate, DELETE=delete operate}
true
true
delete operate
{ADD=add operate, DELETE=delete operate}
ADD DELETE
add operate,delete operate,
ADD: add operate, DELETE: delete operate,
实际应用
定义一个日志操作枚举OptLogEnums
/**
* 操作日志枚举类
*/
public enum OptLogEnums {
USER,// 用户
GROUP,// 群组
SCHOOL,// 学校
AREA, // 地区
BANNER,// banner
QUESTION,// 试题
QUESTIONTEST,// 试卷
TAGS,// 标签
APPSTARTPAGE; // app启动页
}
在controller方法中使用
EnumMap<OptLogEnums, String> enumMap = new EnumMap<>(OptLogEnums.class);
enumMap.put(OptLogEnums.USER,"用户");
request.setAttribute("aaa", enumMap);
在jsp页面中使用
<c:forEach items="${aaa}" var="list1">
<c:if test="${list.modelId==list1.key}">${list1.value}</c:if>
</c:forEach>
输出结果
用户
用户
用户
。。。