프로그래밍
[Java]Lambda Expression(람다식)
재은이
2021. 11. 18. 20:40
728x90
반응형
사전에 알아야 할 지식
1.interface
- 추상화 정도가 추상클래스보다 심한 클래스
- 추상메서드만 존재 상수만을 필드로 가진다
2. anonymous class
- 이름없는 클래스
람다식
람다식이란 메서드를 하나의 '식'으로 표현한것.
메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없으지므로 , 람다식을 '익명함수'라고도 한다.
함수형 인터페이스
람다식은 익명클래스의 객체와 동등함.
람다식을 다루기 위한 인터페이스를 '함수형 인터페이스'라고 함
함수형 인터페이스에는 오직 하나의 추상 메서드만 정의되어 있어야 한다.
@Functionallinterface를 붙이면 컴파일러가 함수형 인터페이스를 올바르게 정의하였는지 확인해준다.
interface MyInter {
String method(int i);
}
public static void main(String[] args) {
//예제1
MyInter inter = new MyInter() {
@Override
public String method(int i) {
return i + i + "";
}
};
//람다식으로 작성
MyInter inter =i -> i + i + "";
//예제2
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("multi 1");
}
});
//람다식으로 작성
//문장(statement) ;있는거
Thread thread = new Thread(() -> {System.out.println("multi 1");});
//수식(expression) ;없는거
Thread thread = new Thread(() -> System.out.println("multi 1"));
}
//정렬예제
List<String> strList = Stream.of("a", "b", "z", "d", "ee").collect(Collectors.toList());
//람다식으로 간단히 처리 가능
//문자열 비교는 compareTo !!
strList.sort((o1, o2) -> o2.compareTo(o1));
java.util.function패키지
728x90
반응형