스트림의 연산 - 중간연산

스트림의 연산 - 최종연산

스트림의 중간연산 (1/7)
- 스트림 자르기 - skip(), limit()
skip : 앞에서부터 n개 건너뛰기
limit : maxSize 이후의 요소는 잘라냄
스트림의 중간연산 (2/7)
- 스트림의 요소 걸러내기 - filter(), distinct()
filter : 조건에 맞지 않는 요소 제거
distinct : 중복제거
스트림의 중간연산 (3/7)
스트림의 중간연산 (4/7)
- comparator의 comparing()으로 정렬 기준을 제공
studentStream.sorted(Comparator.comparing Student::getBan))
.forEach(System.out::println);
- 추가 정렬 기준을 제공할 때는 theComparing()을 사용
스트림의 중간연산 (5/7)
import java.io.*;
import java.util.stream.Stream;
class Java {
public static void main(String[] args) {
File[] fileArr = {new File("EX1.java"), new File("EX1.bak"),
new File("EX2.java"), new File("EX2.txt")
};
Stream<File> fileStream = Stream.of(fileArr);
Stream<String> filenameStream = fileStream.map(File::getName);
filenameStream.forEach(System.out::println);
fileStream = Stream.of(fileArr);
fileStream.map(File::getName)
.filter(s -> s.indexOf('.') != -1)
.map(s -> s.substring(s.indexOf('.')+1))
.map(String::toUpperCase)
.distinct()
.forEach(System.out::println);
System.out.println();
}
}
스트림의 중간연산 (6/7)
- 스트림의 요소를 소비하지 않고 엿보기 - peek()
중간중간 디버깅용도
스트림의 중간연산 (7/7)
- 스트림의 스트림을 스트림으로 변환 - flatMap()
