Построение оператора if, который проверяет перечисления в списке - PullRequest
1 голос
/ 26 августа 2011

Что было бы наиболее эффективно проверить, если что-то есть в списке перечислений? Я осмотрелся некоторое время, и это было не очень ясно. Массивы не имеют функции contains (), а хеш-карты являются ключом: значение.

Что-то вроде:

if(enumlist.contains(foo.enum())){
    // Do something
}

Ответы [ 2 ]

3 голосов
/ 26 августа 2011

Используйте List#indexOf().

if (enumList.indexOf(foo) > -1) {
    // go crazy
}

Альтернативно, вы можете использовать (чрезвычайно эффективную) EnumSet структуру данных для хранения объектов - есливы в порядке, поскольку не можете хранить дубликаты элементов.

if (enumSet.contains(foo)) {
    // just, like, whatever, man
}
2 голосов
/ 26 августа 2011

EnumSet имеет подходящий метод contains().

Приложение: Используя этот пример , напечатайте следующие true.

System.out.println(Resolution.deluxe.contains(Resolution.RES_256));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...