【问题标题】: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
}

【问题讨论】:

  • 参见“第 32 项:使用EnumSet 代替位域”—Effective Java

标签: 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));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      • 2016-01-04
      • 2015-07-09
      • 2015-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多