Lambda 표현식 - JAVA

mingggkeee·2022년 1월 26일
0

Java

목록 보기
12/20

Lambda 식이란?

  • 정렬을 위한 함수(기능)
String [] strs = {"Tim", "Irove", "Jane", "Woo"};
System.out.println(Arrays.toString(strs));
Arrays.sort(strs);
System.out.println(Arrays.toString(strs));

// 결과
[Tim, Irove, Jane, Woo]
[Irove, Jane, Tim, Woo]
  • 함수적 프로그래밍의 형태로 재사용 가능한 코드 블록
  • 기존의 anonymous inner class르 이용한 처리 방식을 간결하게 처리
    • 기존의 형태
    public void sortByAnnonymous() {
    	Arrays.sort(langs,
      		new Comparator<String>(){
              			public int compare(String o1, String o2){
                          			return o1.compare(o2);}});
    • Lambda 식 처리
    public void sortBylambda(){
    	Arrays.sort(langs, (o1,o2)->{return o2.compareTo(o1);});}

타겟 타입과 @FunctionalInterface

  • lambda 식이 할당되는 인터페이스를 Lambda 식의 타겟 타입이라고 함
  • 타겟 타입은 interface로 반드시 하나의 abstract method 만 존재
    • 이 메서드의 구현부에 lambda식이 대체
  • @FunctionalInterface
    • 컴파일러가 하나의 abstract method 만 있음을 체크
      • 두 개의 메서드 존재할 시 오류 발생!
  • abstract method가 2개 이상 존재하는 경우는 익명의 inner class 사용
profile
만반잘부

0개의 댓글