본문 바로가기
Develop/Java

2개의 List를 Stream을 사용하여 비교하기

by jaeyoungb 2023. 2. 17.

noneMatch ( 불일치하는 요소 )

import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;

public class Test {
    public static void main(String[] args) {
        List<String> str1List = Arrays.asList("ab", "bc", "cd", "ef", "fg");
        List<String> str2List = Arrays.asList("cd", "ef", "fg", "gh", "hi");

        List<String> filteredList = str1List.stream()
                .filter(el -> str2List.stream().noneMatch(Predicate.isEqual(el)))
                .collect(Collectors.toList());

        System.out.println("noneMatch filteredList = " + filteredList);
    }
}

str1List를 기준으로 str2List와 요소를 비교하여 불일치하는 요소를 찾기

(str2List를 기준으로 찾으려면 서로 자리만 바꾼 코드로 수정하면 됨)

 

결과값

 

anyMatch ( 일치하는 요소 )

import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;

public class Test {
    public static void main(String[] args) {
        List<String> str1List = Arrays.asList("ab", "bc", "cd", "ef", "fg");
        List<String> str2List = Arrays.asList("cd", "ef", "fg", "gh", "hi");

        List<String> filteredList = str1List.stream()
                .filter(el -> str2List.stream().anyMatch(Predicate.isEqual(el)))
                .collect(Collectors.toList());

        System.out.println("anyMatch filteredList = " + filteredList);
    }
}

서로 일치하는 요소 찾기

 

결과값

 

allMatch ( 모두 일치하는 요소 )

import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;

public class Test {
    public static void main(String[] args) {
        List<String> str1List = Arrays.asList("ab", "bc", "cd", "ef", "fg");
        List<String> str2List = Arrays.asList("cd", "ef", "fg", "gh", "hi");

        List<String> filteredList = str1List.stream()
                .filter(el -> str2List.stream().allMatch(Predicate.isEqual(el)))
                .collect(Collectors.toList());

        System.out.println("allMatch filteredList = " + filteredList);
    }
}

str1List를 기준으로 모두 일치하는 요소들을 찾기

 

결과값

'Develop > Java' 카테고리의 다른 글

Java 진수 변환  (0) 2023.02.18
Map 순회하기  (0) 2023.02.10
ArrayList vs LinkedList  (0) 2023.02.09
BigDecimal  (0) 2023.01.25
중첩 삼항연산자  (0) 2022.11.26