반응형
시작 전에 Predicate와 Function가 뭔 지 모르겠다면❓
2024.12.01 - [☕ 자바 JAVA/☕ 클래스와 함수 Class & Method] - [JAVA]java.util.function 패키지
and() or() negate()를 이용해
두 Predicate를 결합할 수 있다.
💡 negate()
는 !와 같이 not이다. true→false, false→true로 바꿔준다.
Predicate.isEqual(): 두 인수가 같은 지 확인한다.
.andThen()
Function 결합
- Function<입력타입, 출력타입> 이라 두개의 Function을 합치려면
- Function<입력타입, 출력타입>
Function<입력타입, 출력타입>
이 두개가 같아야 한다.
- Function<입력타입, 출력타입>
- 위 코드는 f 실행 후 g를 실행하는 함수를 합친 것이다.
💡 참고로 compose()로도 Function함수 결합이 가능하다.
f.compose(g)를 적으면 g 다음 f가 실행되는 것일 뿐이다.
따라서 그냥 andThen()을 써도 무방하다.
항등 함수
identity function
: 입력값 그대로 출력.
Collection과 함수형 인터페이스
JDK1.8부터 사용가능
인터페이스 | 메서드 | 설명 |
Collection | boolean removeIf(Predicate<E> filter) | 조건에 맞는 요소를 삭제. |
List | void replaceAll(UnaryOperator<E> operator) | 모든 요소를 변환하여 대체. |
Iterable | ⭐ void forEach(Consumer<T> action) | 모든 요소에 작업 action을 수행. |
Map | V conpute(K key, BiFunction<K, V, V> f) | 지정된 키의 값에 작업 f 수행. |
V conputeIf(K key, Function<K, V> f) | 키가 없으면, 작업 f 수행. | |
V conputePresent(K key, BiFunction<K, V, V> f) | 지정된 키가 있을때 작업 f 행. | |
V merge(K key, V value, BiFunction<K, V, V> f) | 모든 요소에 병합작업 f 수행. | |
void forEach(BiConsumer<K, V> action) | 모든 요소에 작업 action을 수행. | |
void replaceAll (BiConsumer<K, V, V> f) | 모든 요소에 치환작업f 수행. |
반응형
'☕ JAVA > ☕ Class & Method' 카테고리의 다른 글
[JAVA][stream]스트림이란? (+특징) (0) | 2024.12.13 |
---|---|
[JAVA]메서드 참조 method reference (0) | 2024.12.12 |
[JAVA][Thread]wait() & notify() (0) | 2024.12.10 |
[JAVA][Thread]동기화 synchronization (1) | 2024.12.09 |
[JAVA][Thread]join() & yield() (0) | 2024.12.09 |