프로그래밍

[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
반응형