공식문서 : 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 | 값이 존재하면 존재하는 값만 포함하는 스트림을 반환,값이 없으면 빈 스트림을 반환 |