본문 바로가기

자바815

Java - 함수형 인터페이스(Function) 합성 andThen, compose Function f = (s) -> Integer.parseInt(s); Function f2 = (i) -> i.toString() + "dddd"; Function result = f.andThen(f2); // f + f2 → result Function result2 = f2.compose(f); // f + f2 → result System.out.println(result.apply("99")); //99dddd System.out.println(result2.apply("99")); //99dddd 2017. 2. 28.
Java - 기본형을 사용하는 함수형 인터페이스 인터페이스 메서드 설명 DoubleToIntFunction int applyAsInt(double d) aTobFunction a는 입력 b는 리턴 ToIntFunction int applyAsInt(T d) ToaFunction a는 입력 리턴은 제네릭 IntFunction T applyAsInt(int d) aFunction 리턴이 제네릭 ObjIntCunsumer void applyAsInt(T d, int i) 입력에 제네릭, int 리턴은 없다 Supplier s = ()->(int)(Math.random()*100); static void makeRandomList(Supplier s, List list) { for(int i=0;i(int)(Math.random()*100); static v.. 2017. 2. 27.
Java - 람다(Lambda) 람다 함수를 간단한 식으로 표현한 걸 람다라고 한다. int sum (int a, int b) { return a + b; } // 위의 함수를 아래와 같은 식으로 변경한다. (a, b) -> a + b 함수를 람다로의 변이 과정 반환타입과 함수이름을 제거하고 {} 앞에 -> 를 추가한다. (int a, int b) -> {return a + b;} 컴파일 시 매개변수 타입을 유추할 수 있다. 그러므로 타입을 생략해도 된다. (a, b) -> {return a + b;} 'return', '{}', ';'도 생략한다. (a, b) -> a + b 그 외 람다 특징 매개변수가 하나일 때 () 생략 가능 하나 뿐인 문장이면 '{}' 생략 가능 하지만 .. 2017. 2. 24.