아이템 42. 익명 클래스보다는 람다를 사용하라

Collections.sort(words, new Comparator<String>() {
	public int compare(String s1, String s2) {
		return Integer.compare(s1.length(), s2.length());
	}
});

람다 이전에 함수 객체를 사용하던 방법 익명 클래스 방식은 코드가 너무 길기 때문에 자바는 함수형 프로그래밍에 적합하지 않음

Java8 이후 추상 메서드가 1개인 인터페이스(함수형 인터페이스)들의 인스턴스를 람다를 사용해 만들 수 있게 되었음

Collections.sort(word,(s1,s2)->Integer.compare(s1.length(),s2.length()));
//생성자 메서드
Collections.sort(words, comparingInt(String::length));
//람다 비교 자리에 생성 메서드를 사용하면 코드를 더 간결하게 만들 수 있다.

//List 인터페이스에 추가된 sort 메서드
words.sort(comparingInt(String::length));

람다

익명 클래스

주의 사항