【问题标题】:Constructing an if statement that checks enums on a list构造一个检查列表中枚举的 if 语句
【发布时间】:2011-08-26 01:24:19
【问题描述】:
检查某个东西是否在枚举列表中最有效的方法是什么?我看了一会儿,不是很清楚。数组没有 contains() 函数,而 hashmap 是 key:value。
类似:
if(enumlist.contains(foo.enum())){
// Do something
}
【问题讨论】:
标签:
java
arrays
enums
if-statement
【解决方案1】:
使用List#indexOf()。
if (enumList.indexOf(foo) > -1) {
// go crazy
}
或者,您可以使用(非常有效的)EnumSet data structure 来存储对象 - 如果您可以不存储重复元素。
if (enumSet.contains(foo)) {
// just, like, whatever, man
}
【解决方案2】:
EnumSet 有一个合适的contains() 方法。
附录:使用此example,以下打印出true。
System.out.println(Resolution.deluxe.contains(Resolution.RES_256));