람다식이란? 간단하게 설명하면 메서드를 "하나의 식"으로 표현한 것이다.
하나의 식으로 표현하여 기존의 방식보다 훨씬 간략하게 표현이 가능하고, 메서드의 이름과 반환값이 존재하지 않는 "익명함수"이다
람다식의 특징
람다식의 장점
람다식의 단점
int [] arr = new int [5];
Arrays.setAll(arr,(i) -> (int) (Math.random() * 5 + 1);
// (i) - (int) (Math.random() * 5 + 1 람다식을 메서드로 표현하면?
int method() {
return (int) (Math.random() * 5) + 1;
}
위 코드에서는 int 배열 arr 에 setALl의 두 번째 인자로 채우는 코드를 가지고있다.
이렇게 람다식은 람다식 자체만으로도 메서드의 역할을 대신할 수 있고, 메서드의 매개변수로 전달되어 지는 것도 가능하다.
() -> { ... };
() = 파라미터
-> = 화살표
{ ... } = 실행문
어떠한 특정코드를 람다 표현식으로 만들었을 때, 그 표현식은 변수에 담길 수도 있고 파라미터로 보낼 수도 있음
어쨋든 특정 변수에 담길 수 있어야 함.
List<String> list = new ArrayList<>();
list.add("자바");
list.add("C");
list.add("리액트");
for(String str : list){
System.out.println(str);
}
System.out.println();
list.stream().forEach( (String str) -> {System.out.println(str)});
//forEach 메서드가 lsit가 갖고있는 데이터를 순회한다.
//람다 표현식.
자바
C
리액트
자바
C
리액트
list.stream().forEach( (str,str2) -> System.out.println(str));
//코드가 한줄로 작성이 되면 중괄호는 생략가능함
//String 도 생략가능함. 파라미터의 타입이 예측가능한 형태이면 따로 타입을 지정해주지 않아도 됨.
//파라미터가 하나가 아닐 경우 소괄호를 적어줌