[Java] 스트림(stream) - 가공(중간 연산)

Junseo Kim·2021년 1월 21일
0

[Java]자바 기초

목록 보기
22/35

스트림 자르기

스트림의 일부를 잘라낸다.

  • skip(n): 처음 n개의 요소를 건너뛴다.
  • limit(n): 스트림의 요소를 n개로 제한.

스트림 요소 걸러내기

  • filter(): 주어진 조건에 맞지 않는 요소를 걸러낸다.
IntStream intStream = IntStream.rangeClosed(1, 10);
intStream.filter(i -> i % 2 == 0).forEach(System.out::print); // 246810
  • distinct(): 중복된 요소를 제거한다.

요소 정렬

  • sorted(): 매개변수로 comparator나 int 값을 반환하는 람다식을 사용할 수 있다. 매개변수를 주지 않으면 기본 정렬 기준으로 정렬되며 이때는 스트림의 요소는 Comparable을 구현한 클래스여야한다.

sorted 매개변수를 Comparator.comparing().thenComparing().thenComparing()... 이런식으로 줄 수 있다.

변환

  • map(Function<? super T, ? extends R> mapper): 스트림 요소에 저장된 값 중 원하는 요소만 뽑아내거나 특정 형태로 변환해야 할 때 사용. T타입을 R타입으로 변환하는 함수를 매개변수로 줘야한다.

  • flatmap(): 스트림 타입이 배열인 경우, map을 사용하면 Stream<Stream> 타입이 된다. 하지만 flatmap을 사용하는 경우 Stream로 배열을 하나의 스트림으로 생성할 수 있다.

조회

  • peek(): 중간 연산 사이에 연산이 올바르게 되고있는지 확인할 때 사용. 스트림의 요소를 소모하는 연산이 아니므로 여러번 사용할 수 있다.

0개의 댓글