자바 스트림 활용하기

Martin the dog·2023년 10월 19일

스트림 활용하기

필터링

filter

스트림의 filter를 통해 특정 값을 필터링 할 수 있다.
filter 중간 연산에는 (T)->boolean의 값이 들어 가면된다.

distinct

중복된 값을 제거해준다. 중복된 값을 판단하는 여부는 hashCode, equals를 통해 판별하여 적용한다.

슬라이싱

정렬이 되어 있을 때 요긴한 것

takeWhile

takeWhile((T)->boolean)이며 boolean값이 false가 나오기 전 까지의 값들을 담아 다음 stream 연산에 전달한다.

dropWhile

dropWhile((T)->boolean)이며 boolean값이 false가 나오기 전까지 값들을 생략후 나머지 값들을 다음 stream 연산에 전달한다.

정렬 상관 없는 경우

limit

limit(int n) 이며 처음부터 n번째 까지의 요소만을 반환한다.

skip

skip(int n) 이며 처음부터 n번째 까지의 요소를 스킵한다.

맵핑

맵핑은 값을 입력받아 다른 형태로 가공하여 다음 스트림 연산으로 전달한다.

map

map((T)->U) 이며 T를 입력받아 U로 가공하여 U로 이루어진 스트림 값을 다음 스트림 연산에 넘긴다.

flatMap

flatMap((T)->U) 로 Map과 동일하다. 하지만 스트림 입력받아 입력받은 스트림의 내용을 가장 작은 단위로 풀어준다.

요소 검사

anyMatch

anyMatch((T)->boolean) 이며 하나라도 true인 값이 있으면 true를 반환한다.

allMatch

allMatch((T)->boolean) 이며 모든 값이 true일 때만 true를 반환한다.

noneMatch

allMatch의 반대로 (T)->boolean의 값이 모두 false 일때만 true를 반환한다.

요소 검색

findAny()

임의의 값을 반환한다.

findFirst()

처음 값을 반환한다.

리듀싱

값을 누적해 가는 연산을 할때 요긴하게 쓰인다.

reduce

reduce(초기값, (T,T)->T) 람다 함수 첫번째 파라미터에는 초기값이 들어가며 두번째 파라미터에는 stream 값이 들어간다. 그 이후 반환값이 초기값을 대신하게 된다.

스트림 생성법

Stream.of(파라미터1,파라미터2,파라미터3,....)
or
Arrays.stream(배열)
로 스트림을 생성할 수 있다.

그이외에중간연산자들은그 이외에 중간 연산자들은
=> https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html <=
여기서 확인

profile
Happy Developer

0개의 댓글