본문으로 건너뛰기

Lambda

기본구문

// 함수의 처리를 한줄로 사용할때  
(인수) ->


// 함수식 처리를 복수의 행으로 사용할 때
(인수) -> {
함수의 처리
return;
}

람다식을 로 감쌀 때에는 리턴이 필요하다

익명클래스를 대신해서 사용할 때

Java7에서는 이렇게 쓰는것이 일반적이였다.

List<String> fruits = Arrays.asList("Apple", "Banana", "Orange");
list.sort(new Comparator<String>(){
@Override
public int compare(String s1, String s2){
return s1.length() - s2.length();
}
});

Java8에서는 이렇게 사용한다.

List<String> fruits = Arrays.asList("Apple", "Banana", "Orange");
list.sort((String s1, String s2) -> s1.legth() - s2.length());

람다식에서 인수는 형을 생략할수도 있다.
list.sort((s1, s2) -> s1.length() - s2.length());
인수가 하나인경우 인수를 넣는 ()을 생략 할수도 있다.
list.forEach(s -> System.out.println(s));
리스트를 순회할 경우 Java7과 Java8의 비교
List<String> fruits = Arrays.asList("Apple", "Banana", "Orange");

// Java7
for(String fruit : fruits) {
System.out.println(fruit);
}

// Java8
fruits.forEach(s -> System.out.println(s));