
공식문서 : https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
| 함수 형식 | 추상 메서드 | 설명 | 디폴트 메서드 |
|---|---|---|---|
| Predicate | boolean test(T t) | T 타입 인수를 받아 Boolean 값을 반환한다 | and, or, negate |
| BiPredicate<T, U> | boolean test(T t, U u) | T 타입 인수와 U 타입 인수를 받아 Boolean 값을 반환한다 | and, or, negate |
| Consumer | void accept(T t) | T 타입 인수를 받아 결과를 반환하지 않는다 | andThen |
| Supplier | T get() | 인수를 받지 않고 T 값을 반환한다 | |
| Function<T, R> | R apply(T t) | T 타입 인수를 받아 R 값을 반환한다 | andThen, compose |
| BiFunction<T, U, R> | R apply(T t, U u) | T 타입 인수와 U 타입 인수를 받아 R 값을 반환한다 | |
| BinaryOperator | T apply(T t, T u) | T 타입 인수를 두 개를 받아 연산을 실행하고 T 타입의 결과값을 반환한다 | maBy, minBy |
| 연산 | 형식 | 반환 형식 | 사용된 함수형 인터페이스 형식 | 함수 디스크립터 |
|---|---|---|---|---|
| filter | 중간 연산 | Stream | Predicate | T → boolean |
| distinct | 중간 연산 (상태 있는 언바운드) | Stream | ||
| takeWhile | 중간 연산 | Stream | Predicate | T → boolean |
| dropWhile | 중간 연산 | Stream | Predicate | T → boolean |
| skip | 중간 연산 (상태 있는 바운드) | Stream | long | |
| limit | 중간 연산 (상태 있는 바운드) | Stream | long | |
| map | 중간 연산 | Stream | Function<T,R> | T → R |
| flatMap | 중간 연산 | Stream | Function<T,Stream> | T → Stream |
| sorted | 중간 연산 (상태 있는 언바운드) | Stream | Comparator | (T,T) → int |
| peek | 중간 연산 | Stream | Consumer | T → void |
| anyMatch | 최종 연산 | boolean | Predicate | T → boolean |
| noneMatch | 최종 연산 | boolean | Predicate | T → boolean |
| allMatch | 최종 연산 | boolean | Predicate | T → boolean |
| findAny | 최종 연산 | Optional | ||
| findFirst | 최종 연산 | Optional | ||
| forEach | 최종 연산 | void | Consumer | T → void |
| collect | 최종 연산 | R | Collector<T,A,R> | |
| reduce | 최종 연산 (상태 있는 바운드) | Optional | BinaryOperator | (T,T) → T |
| count | 최종 연산 | long |
| 팩토리 메서드 | 반환 형식 | 사용 예제 |
|---|---|---|
| toList | List | 스트림의 모든 항목을 리스트로 수집 |
| toSet | Set | 스트림의 모든 항목을 중복이 없는 집합으로 수집 |
| toCollection | Collection | 스트림의 모든 항목을 발행자가 제공하는 컬렉션으로 수집 |
| counting | Long | 스트림의 항목 수 계산 |
| summingInt | Integer | 스트림의 항목에서 정수 프로퍼티값을 더함 |
| averagingInt | Double | 스트림 항목의 정수 프로퍼티의 평균값 계산 |
| summarizingInt | IntSummaryStatistics | 스트림 내 항목의 최댓값,최솟값,합계,평균 등의 정수 정보 통계 수집 |
| joining | String | 스트림의 각 항목에 toString메서드를 호출한 결과 문자열 연결 |
| maxBy | Optional | 주어진 비교자를 이용해 스트림의 최댓값 요소를 Optional로 감싼 값을 반환. 스트림에 요소가 없을 때는 Optional.empty()반환 |
| minBy | Optional | 주어진 비교자를 이용해 스트림의 최솟값 요소를 Optional로 감싼 값을 반환. 스트림에 요소가 없을 때는 Optional.empty()반환 |
| reducing | The type produced by the reduction operation | 누적자를 초깃값으로 설정한 다음 BinaryOperator로 스트림의 각 요소를 반복적으로 누적자와 합쳐 스트림을 하나의 값으로 리듀싱 |
| collectingAndThen | The type produced by the reduction operation | 다른 컬렉터를 감싸고 그 결과에 변환 함수 적용 |
| groupingBy | Map<K, List> | 하나의 프로퍼티값을 기준으로 스트림의 항목을 그룹화하며 기준 프로퍼티값을 결과 맵의 키로 사용 |
| partitioningBy | Map<Boolean, List> | 프레디케이트를 스트림의 각 항목에 적용한 결과로 항목 분할 |
| 메서드 | 설명 |
|---|---|
| empty | 빈 Optional 인스턴스 반환 |
| filter | 값이 존재하며 Predicate와 일치하면 값을 포함하는 Optional반환, 값이 없거나 Predicate와 일치하지 않으면 빈 Optional반환 |
| flatMap | Map결과의 자료형을 하나 벗겨낸 결과값 반환 |
| get | 값이 존재하면 Optional이 감싸고 있는 값을 반환, 값이 없으면 NoSuchElementException발생 |
| ifPresent | 값이 존재하면 지정된 Consumer를 실행하고, 값이 없으면 아무 일도 일어나지 않음 |
| ifPresentOrElse | 값이 존재하면 지정된 Consumer를 실행하고, 값이 없으면 아무 일도 일어나지 않음 |
| isPresent | 값이 존재하면 true를 반환하고, 값이 없으면 false를 반환함 |
| map | 값이 존재하면 제공된 매핑 함수를 적용함 |
| of | 값이 존재하면 값을 감싸는 Optional을 반환, 값이 null이면 NullPointerException을 발생 |
| ofNullable | 값이 존재하면 값을 감싸는 Optional을 반환, 값이 null이면 Optional을 반환 |
| or | 값이 존재하면 같은 Optional을 반환, 값이 없으면 Supplier에서 만든 Optional을 반환 |
| orElse | 값이 존재하면 값을 반환, 값이 없으면 기본값을 반환함 |
| orElseGet | 값이 존재하면 값을 반환, 값이 없으면 Supplier에서 제공하는 값을 반환함 |
| orElseThrow | 값이 존재하면 값을 반환, 값이 없으면 Supplier에서 생성한 예외 발생 |
| stream | 값이 존재하면 존재하는 값만 포함하는 스트림을 반환,값이 없으면 빈 스트림을 반환 |