본문 바로가기

정리38

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 - 자바에서 제공하는 함수형 인터페이스 자주 사용되는 함수형 인터페이스를 제공 인터페이스 메서드 설명 java.lang.Runnable void run() 리턴 값과 매개변수 둘다 없다. Supplier T get() 리턴 값만 있다. Consumer void accept(T t) 매개변수만 있다. Function R apply(T t) 하나의 매개변수와 하나의 리턴 값을 가진다. Predicate boolean test(T t) 하나의 매개변수를 가지고 booean값을 리턴한다. import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; pub.. 2017. 2. 26.
Java - 함수형 인터페이스 단 하나의 추상 메서드만 선언된 인터페이스 interface ClassName { public abstract int sum(int a, int b); } ClassName cn = new ClassName() { // 기존에는 아래와 같이 new 함수를 사용하여 객체를 생성할 때 함수를 구현한다. public int sum(int a, int b) { return a + b; } }; // 함수를 사용한다.int c = cn.sum(1, 2); //람다식 사용하기 ClassName cn2 = (a, b) -> a + b cn2.sum(1, 2); 함수형 인터페이스를 매개변수로 받기 int test(ClassName cn) { // 고차원함수 reuturn cn.sum(1, 2); } test(cn2);.. 2017. 2. 25.
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.