🌱 오늘의 주제 : 스트림(collect(), 스트림의 그룹화와 분할
🌱 collect()와 Collectors
- 컬렉터(collector)는 collect()가 스트림의 요소를 수집하는 방법이 정의되어 있다.
collect() - 스트림의 최종연산, 매개변수로 컬렌터를 필요로 한다.
Collector - 인터페이스, 컬렉터는 이 인터페이스를 구현해야 한다.
Collectors - 클래스, static 메서드로 미리 작성된 컬렉터를 제공한다.
🌱 스트림을 컬렉션, 배열로 변환
- 스트림의 모든 요소를 컬렉션에 수집하려면, Collectors클래스의 toList() 메서드를 사용하면 된다.
- 특정 컬랙션을 지정하려면, toCollection()에 원하는 컬렉션의 생성자 참조를 매개변수로 넣어주면 된다.
- 스트림에 저장된 요소들을 T[]타입의 배열로 변환하려면, toArray()를 사용하면 된다. 단, 해당 타입의 생성자 참조를 매개변수로 지정해줘야 한다.
Student[] stuNames = studentStream.toArray(Student[]::new);
🌱 스트림의 그룹화와 분할
- 그룹화는 스트림의 요소를 특정 기준으로 그룹화하는 것을 의미한다.
- 분할은 스트림의 요소를 두 가지, 지정된 조건에 일치하는 그룹과 일치하지 않는 그룹으로의 분활을 의미한다.
- groupingBy()는 Function으로, partitioningBy()는 Predicate로 분류한다.
Collector partitioningBy(Predicate predicate)
Collector groupingBy(Function classifier)
🌱 스트림의 변환
'Java' 카테고리의 다른 글
Java - FileInputStream과 FileOutputStream, BufferedInputStream과 BufferedOutputStream, 문자 기반 스트림 - Reader , Writer (0) | 2023.04.10 |
---|---|
Java - 입출력(I/O) 과 스트림(stream)이란? (0) | 2023.04.06 |
Java - 스트림의 최종연산 (0) | 2023.04.04 |
Java - Optional<T> (0) | 2023.04.03 |
Java - 스트림의 특징과 스트림의 중간연산 (0) | 2023.03.30 |