Java 람다와 스트림 02 (23.05.04)

Jane·2023년 5월 4일
0

IT 수업 정리

목록 보기
118/124

1. 람다 인터페이스

  • 자바에서의 람다는 기본적으로 인터페이스로 구현한다.
  • 람다 구현을 위한 인터페이스는 기본적으로 반드시 추상 함수가 1개.
  • 람다를 위한 인터페이스란 의미의 @를 제공하기 시작
@FunctionalInterface
interface Printable{
   public abstract void print(String s);   
}

1-1. 계산하는 람다 식 만들기

  • 기본 코드
@FunctionalInterface
interface Calculate{
	void cal(int a, int b);
}


public class lambda_example {
   public static void main(String args[]) {
	   Calculate cal;
	// cal = (int a, int b) -> {System.out.println(a+b);};
       cal = (a, b) -> System.out.println(a+b);
	   cal.cal(4, 3);
   }
}
  • 연산하기

@FunctionalInterface
interface Printable{
   public abstract void print(String s);   
}

@FunctionalInterface
interface Calculate{
	void cal(int a, int b);
}


public class lambda_example {
   public static void main(String args[]) {
	   Calculate cal;
	   cal = (a, b) -> System.out.println(a+b);
	   cal.cal(4, 3);
	   
	   cal = (a, b) -> System.out.println(a-b);
	   cal.cal(4, 3);
	   
	   cal = (a, b) -> System.out.println(a*b);
	   cal.cal(4, 3);
   }
}
  • Sysout을 나중에 할 때
@FunctionalInterface
interface Calculate2 {
	int cal(int a, int b); // 매개변수 둘, 반환형 void
}

public class lambda_example {
	public static void main(String args[]) {
		Calculate2 cal2;
		cal2 = (a, b) -> {
			//return a + b;
            a + b;
		};
		
		System.out.println(cal2.cal(3, 4));
	}
}

1-2. 길이를 구하는 람다 식

@FunctionalInterface
interface HowLong {
      int len(String s);
}

public class lambda_example {
	public static void main(String args[]) {
		HowLong len;
	//	len = (String s) -> {return s.length();};
    	len = s -> s.length();
		System.out.println(len.len("helloworld"));
		System.out.println(len.len("sourcetree"));
		System.out.println(len.len("chicken"));
	}
}
profile
velog, GitHub, Notion 등에 작업물을 정리하고 있습니다.

0개의 댓글