Как проверить, есть ли какой-либо из нескольких элементов в Списке удобным способом? - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь написать следующее условие:

if(javaList.contains("aaa")||javaList.contains("abc")||javaList.contains("abc")) {
    //do something
}

Как мне сделать это лучше?

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

Если вы на Java 8 и выше, вы можете использовать следующий код:

if (javaList.stream().anyMatch(l -> l.matches("aaa|xyz|abc")))

Вы можете использовать .matches() и передать в строки , разделенные ИЛИ символ..matches() принимает String , представленную как регулярное выражение .

0 голосов
/ 25 октября 2018

Преобразовать в Задать и проверить пересечение.

Set<String> intersection = new HashSet<String>(listOfThings);
intersection.retainAll(Set.of("aaa","abc","def"));

Проверьте, если размер> 0, а затем вы также можете увидеть, что в нем содержится, что представляет интерес.

0 голосов
/ 25 октября 2018

Обычно более эффективно запускать contains на Set, чем на List.Поэтому я предлагаю вам создать Set элементов, которые вы хотите протестировать, а затем выполнить потоковую передачу по List, чтобы увидеть, совпадает ли какой-либо из его элементов:

Как насчет:

if (javaList.stream().anyMatch(e -> Set.of("aaa","abc","def").contains(e)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...