Если у вас есть список строк (List<String>) и вам требуется найти определённую строку в этом списке (или проверить, что список содержит нужную строку), вы можете это легко сделать несколькими способами:

  • С помощью стримов (этот способ подходит для Java 8 и выше)
  • С помощью итерирования по списку

Поиск строк с помощью стримов

Данный способ доступен для версии Java 8 и выше:

List<String> langs = new ArrayList<>();
langs.add("Java");
langs.add("JavaScript");
langs.add("Kotlin");
langs.add("Scala");
langs.add("Groovy");
langs.add("Python");

List<String> result = langs.stream()
        .filter(lang -> lang.contains("Java"))
        .collect(Collectors.toList());

System.out.println(result);

В консоль выведется:

[Java, JavaScript]

Чтобы учитывать полные совпадения строки, можно заменить эту строчку в коде:

.filter(lang -> lang.contains("Java"))

на следующую:

.filter(lang -> lang.equals("Java"))

В этом случае вывод в консоль будет следующим:

[Java]

Если же нужно просто проверить, есть ли искомая строка в списке, можно упростить код:

boolean result = langs.stream().anyMatch(lang -> lang.equals("Java"));

В данном случае в консоль напечатается значение true.

Поиск строк итерированием по списку

Найти строку можно и простым обходом всех элемента списка, допустим, с помощью цикла for-each:

List<String> langs = new ArrayList<>();
langs.add("Java");
langs.add("JavaScript");
langs.add("Kotlin");
langs.add("Scala");
langs.add("Groovy");
langs.add("Python");

for (String lang : langs) {
    if (lang.startsWith("Java")) {
        System.out.println(lang);
    }
}

Здесь мы обходим все строки, находящиеся в списке, и выводим те, которые начинаются на «Java». Результатом будет вывод на консоль:

Java
JavaScript

Заключение

С помощью стримов и итерирования по списку можно найти необходимый элемент. С помощью методов сравнения строк можно легко отфильтровать нужные элементы списка:

  • startsWith – проверяет, начинается ли строка с указанной последовательности символов
  • equals / equalsIgnoreCase – сравнивает строки целиком (учитывая или игнорируя регистр букв)
  • contains – проверяет, содержит ли строка указанную последовательность символов

Поиск строки в списке List