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));