equals()와 hashCode()가 제대로 구현된 객체라면, 해당 객체의 중복 여부가 올바르게 판단된다.Comparable 구현체 필요)Comparator를 인자로 넣어 사용자 정의 정렬도 가능List<List<String>>처럼 중첩 리스트를 모두 단일 스트림으로 펼쳐 처리하고 싶을 때 유용flatMap()은 각 요소(서브 리스트 등)를 스트림으로 변환한 뒤, 모든 스트림을 하나로 이어붙인다.
collect()는 최종 연산으로, 스트림의 모든 요소를 어떤 형식(컬렉션, 문자열, Map 등)으로 모으는 기능을 제공한다.- 보통
Collectors클래스의 정적 메서드를 이용해 구체적인 방법을 지정한다.- 예:
Collectors.toList(),Collectors.toSet(),Collectors.joining(), 등
가장 단순하고 자주 쓰이는 수집 방법으로, 스트림 결과를 List나 Set으로 모을 수 있다.
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class CollectToListExample {
public static void main(String[] args) {
List<String> data = Arrays.asList("a", "b", "c", "b");
List<String> result = data.stream()
.distinct()
.collect(Collectors.toList());
System.out.println("Result list: " + result);
}
}
실행 결과
Result list: [a, b, c]