1. UnaryOperator
UnaryOperator는 Function의 자손이다.
그러나 Parameter Type과 Return Type이 같다.
@Test
@DisplayName("UnaryOperator를 활용한 replaceAll()")
void UnaryOperatorTest() {
UnaryOperator<Integer> makeTwice = n -> n * 2;
List<Integer> originList = Arrays.asList(1, 2, 3);
originList.replaceAll(makeTwice);
List<Integer> resultList = Arrays.asList(2, 4, 6);
assertThat(originList).isEqualTo(resultList);
}
2. BinaryOperator
BinaryOperator는 BiFunction의 자손이다.
그러나 Parameter Type과 Return Type이 같다.
@Test
@DisplayName("BinaryOperator를 활용한 reduce()")
void BinaryOperatorTest() {
BinaryOperator<Integer> makeCalc = (x, y) -> (x * 2) + y;
List<Integer> originList = Arrays.asList(1, 2, 3);
assertThat(originList.stream().reduce(makeCalc).get()).isEqualTo(11);
}
https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
java.util.function (Java Platform SE 8 )
Interface Summary Interface Description BiConsumer Represents an operation that accepts two input arguments and returns no result. BiFunction Represents a function that accepts two arguments and produces a result. BinaryOperator Represents an operation u
docs.oracle.com
'개발' 카테고리의 다른 글
[Java] 인터페이스만 다중 상속이 가능한 이유? (0) | 2022.10.09 |
---|---|
[Spring] java.lang.IllegalArgumentException: id to load is required for loading 오류 (0) | 2022.09.18 |
[Java] Supplier, Consumer, Function 함수형 인터페이스 (0) | 2022.06.27 |
[Java] Predicate 함수형 인터페이스 (0) | 2022.06.27 |
IntelliJ에서 JUnit, AssertJ 프로젝트 생성하기 (0) | 2022.06.27 |