본문 바로가기

공부/Java28

함수형 인터페이스 : Predicate 결합 1. 두 Predicate를 하나로 결합 : and(), or(), negate() Predicate p = i -> i i i % 2 == 0; Predicate notP = p.negate(); Predicate all = notP.and(q).or(r); Predicate all2 = notP.and(q.or(r)); 2. 컬렉션 프레임워크 메서드 2-1. List - foreach - removeIf - replaceAll List list = new ArrayList(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); list.forEach(i -> System.out.print.. 2022. 3. 1.
java.util.function 패키지 (함수형 인터페이스) 1. 자주 사용되는 다양한 함수형 인터페이스 제공 - Supplier : 매개변수X, 반환값O - Comsumer : 매개변수O, 반환값X - Function : 매개변수O, 반환값O - Predicate : 매개변수O, 반환값O (boolean, 조건식) Supplier f = ()->(Math.random()*100)+1; Consumer f = i -> System.out.println(i+", "); Function f = i -> i/10*10; Predicate f = i -> i % 2 ==0; 2. 매개변수 2개 이상 - BiConsumer - BiFunction - BiPredicate 2022. 3. 1.
함수형 인터페이스 1. 함수형 인터페이스 - 단 하나의 추상 메서드만 선언된 인터페이스 - 인터페이스 선언 @FunctionalInterface // 함수형 인터페이스는 단 하나의 추상 메서드만 가져야 함. interface MyFunction { public abstract int max(int a, int b); } 사용방법1. MyFunction f = new MyFunction(){ public int max(int a, int b) { return a>b ? a:b; } } int value1 = f.max(3,5); // 5 사용방법2. MyFunction f2 = (a, b) -> a>b ? a:b; int value2 = f.max(3,5); // 5 EX) 익명 객체를 람다식으로 대체 - 익명 객체 int.. 2022. 3. 1.
람다식 (Lambda Expression) 1. 람다식 - 메서드(함수)를 간단한 '식(expression)' 으로 표현하는 방법 / 이름이 없는 함수(익명 함수) int max(int a, int b) { return a > b ? a : b; } int max(int a, int b) -> { return a > b ? a : b; } (a, b) -> a > b ? a : b 2. 작성시 주의사항 2-1. 매개변수가 하나인 경우 : 괄호() 생략가능(타입이 없을 때만) - (a) -> a*a a -> a*a - (int a) -> a*a (생략 불가능) 2-2. return문이면 괄호{} 생략불가 (그냥 return 생략하자) - (int a, int b) -> { return a > b ? a : b } 2022. 3. 1.