람다식 (익명 함수) : 메서드를 하나의 식으로 표현한것
코드의 가독성, 코드 간결함 상승
메서드를 변수처럼 다루는 것이 가능
int[] arr = new int[5];
Arrays.setAll (arr, (i) -> (int)(Math.random() *5) +1); //람다식
위와같은 람다식은 다음과 같은 기능을 한다.
int method(){
return (int)(Math.random()*5) +1;
}
만약 람다식 없이 작성하게 되면 method기능을 하는 클래스 또한 추가로 만들고 객체를 생성해서 사용해야 한다.
반환타입 메서드이름(매개변수 선언) {
문장들
}
~~반환타입 메서드이름~~ (매개변수 선언) -> {
~~문장들
}~~
두 값 중에서 큰 값을 반환하는 메서드
// 메서드
int max(int a,int b){
return a > b ? a : b;
}
// 람다식 만드는 과정
// 1. 메서드 이름 삭제
(int a, int b) -> {
return a > b ? a : b;
}
// 2. 반환값이 있는 경우 return문 대신 식으로 작성
(int a, int b) -> { a > b ? a : b; }
// 3. 람다식에 선언된 매개변수의 타입은 추론이 가능한 경우 생략 가능 , 하나만 생략 불가
(a, b) -> { a > b ? a : b; }
// 4. 매개변수가 하나뿐인 경우 () 생략가능, 타입이 필요하면 불가
// 5. {}안의 문장이 하나일 경우 {} 생략 가능 이때 ;또한 지워져야함, return문장일 경우 같이생략
(a, b) -> a > b ? a : b
람다람쥐