Develop/Java
2개의 List를 Stream을 사용하여 비교하기
jaeyoungb
2023. 2. 17. 00:34
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를 기준으로 모두 일치하는 요소들을 찾기