Java - List에서 특정 문자열이 들어있는지 확인

JS · 24 Oct 2020

ArrayList에 특정 String이 있는지 확인하는 방법을 소개합니다.

contains()

다음과 같이 List.contains()를 이용하면 간단히 특정 문자열을 찾을 수 있습니다.

List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Kiwi");
list.add("Orange");

String fruit = "Orange";

if (list.contains(fruit)) {
    System.out.println(fruit + " is in the List");
}

Output:

Orange is in the List

for

위의 코드는 for를 이용하여 간단히 구현할 수도 있습니다.

List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Kiwi");
list.add("Orange");

String fruit = "Orange";

for (String item : list) {
    if (item.equals(fruit)) {
        System.out.println(fruit + " is in the List");
        break;
    }
}

Output:

Orange is in the List

만약 문자열이 List에 있을 때, index도 함께 얻고 싶다면 다음과 같이 구현하면 됩니다.

List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Kiwi");
list.add("Orange");

String fruit = "Orange";

for (int i = 0; i < list.size(); i++) {
    String item = list.get(i);
    if (item.equals(fruit)) {
        System.out.println(fruit + " is in the List. The index is " + i);
        break;
    }
}

Output:

Orange is in the List. The index is 2

Iterator

for처럼 Iterator를 이용하여 Loop를 만들고 원하는 문자열을 찾을 수 있습니다.

List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Kiwi");
list.add("Orange");

String fruit = "Orange";

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    if (item.equals(fruit)) {
        System.out.println(fruit + " is in the List");
    }
}

Stream

Stream을 이용하여 리스트에서 특정 문자열을 찾을 수 있습니다.

List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Kiwi");
list.add("Orange");

String fruit = "Orange";
List<String> result = list.stream()
        .filter(str -> str.trim().equals(fruit))
        .collect(Collectors.toList());

if (result.size() > 0) {
    System.out.println(fruit + " is in the List: " + result);
}

Output:

Orange is in the List: [Orange]
댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha