본문 바로가기

728x90

자바

[Java] Predicate 인터페이스 /* Predicate 인터페이스 */ 함수형 프로그래밍을 구현하기 위해 jdk 1.8에 나왔다. /* Predicate 의 test() */ boolean test(T t); test() 메서드는 제너릭 타입 T t로 특정 작업(함수형 프로그래밍, 람다식)을 수행한다. /* 예제1 */ Predicate predicate = (input) -> input > 100; predicate.test(10); //false predicate.test(200); //true 위의 예제를 보면 함수형 프로그래밍을 만들면 test 메서드를 따로 정의할 필요가 없다. (이미 정의가 되어있다) 따라서 다음과 같은 식도 가능하다 /* 예제2 */ public void deleteById(int id){ // Todo는.. 더보기
[JAVA] 람다식 (Lambda Expression) /* 람다식이란 */ 자바 1.8 부터 사용 가능하다. 동일한 패러미터, 동일한 패러미터 값으로 여러 동작을 하고 싶을 때가 있다. ex) 동일한 패러미터 : double x, double y, 동일한 패러미터 값 : x = 1.0 , y = 4.0, 여러 동작 x+y , x-y, x/y ... 이 경우, 함수를 여럿 만드는 것이 아니라 람다식을 이용한 함수형 프로그래밍을 한다. 데이터 처리의 다형성이라고도 볼 수 있다. 코드가 간결해진다. (가독성) 병렬처리 기능을 할 수 있어 멀티쓰레드에 용이하다 람다식의 형식은 다음과 같다. 람다식 : (매개변수, ...) -> { 처리문 } 먼저 추상 인터페이스를 활용한 람다식이 있다. /* 추상인터페이스 이용1 */ 본 코드는, @FunctionalInterfa.. 더보기
[JAVA] 제네릭 타입 자바의 제네릭에 대해 배워보겠다. (이것이 자바다 에서 참조) /* 쓰는 이유 */ 1. 컴파일 시 강한 타입체크를 할 수 있다. 그러므로 타입변환 관련 에러를 사전에 방지할 수 있다. 2. 위랑 비슷한 내용으로 타입 변환을 제거한다. 강제 타입 변환을 쓰는 경우에는 에러를 피할 수는 있지만 성능 저하를 불러일으킨다. /* 제네릭 예시 1 (기본 형식) */ public class Box { public T content; // 제네릭 타입을 T로 사용 } public class CheckBox { public static void main(String[] args){ Box box1 = new Box(); // Box 타입을 String으로 변경 Box box2 = new Box(); // Box 타입.. 더보기

728x90