스트림의 filter를 통해 특정 값을 필터링 할 수 있다.
filter 중간 연산에는 (T)->boolean의 값이 들어 가면된다.
중복된 값을 제거해준다. 중복된 값을 판단하는 여부는 hashCode, equals를 통해 판별하여 적용한다.
takeWhile((T)->boolean)이며 boolean값이 false가 나오기 전 까지의 값들을 담아 다음 stream 연산에 전달한다.
dropWhile((T)->boolean)이며 boolean값이 false가 나오기 전까지 값들을 생략후 나머지 값들을 다음 stream 연산에 전달한다.
limit(int n) 이며 처음부터 n번째 까지의 요소만을 반환한다.
skip(int n) 이며 처음부터 n번째 까지의 요소를 스킵한다.
맵핑은 값을 입력받아 다른 형태로 가공하여 다음 스트림 연산으로 전달한다.
map((T)->U) 이며 T를 입력받아 U로 가공하여 U로 이루어진 스트림 값을 다음 스트림 연산에 넘긴다.
flatMap((T)->U) 로 Map과 동일하다. 하지만 스트림 입력받아 입력받은 스트림의 내용을 가장 작은 단위로 풀어준다.
anyMatch((T)->boolean) 이며 하나라도 true인 값이 있으면 true를 반환한다.
allMatch((T)->boolean) 이며 모든 값이 true일 때만 true를 반환한다.
allMatch의 반대로 (T)->boolean의 값이 모두 false 일때만 true를 반환한다.
임의의 값을 반환한다.
처음 값을 반환한다.
값을 누적해 가는 연산을 할때 요긴하게 쓰인다.
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 <=
여기서 확인