람다

    [Java] 람다와 스트림

    🔍 람다식 람다식이란 메서드를 하나의 식으로 표현한 것으로 메서드를 간략하면서도 명확한 식으로 표시할 수 있다는 장점이 있다. 🗝️ 람다식의 기본 형태 메서드에서 반환 타입과 이름을 제거하고 매개변수 선언부와 몸통 사이에 화살표를 추가하면 된다. 반환타입 메서드이름 (매개변수) {} =====> (매개변수) -> { } // Example int max(int a, int b) { return a (int a, int b) -> return a < b? b : a 🗝️ 함수형 인터페이스 자바에서 모든 메서드는 클래스 내에 포함되어야 한다. 즉, 클래스 없이는 함수를 사용할 수 없다는 뜻이다. 그럼에도 불구하고 람다식이 클래스 없이 실행될 수 있는 이유는 람다식은 실제로..

    [Effective Java] 익명 클래스보다는 람다를 사용하라

    익명 클래스의 등장 예전에는 자바에서 함수 타입을 표현할 때 추상 메서드를 하나만 담은 인터페이스를 사용했다. 이런 인터페이스의 인스턴스를 함수 객체라고 하여, 특정 함수나 동작을 나타내는 데 썼다. 이런 익명 클래스는 이후에 함수 객체를 만드는 주요 수단이 되었다. Collections.sort(words, new Comparator() { public int compare(String s1, String s2) { return Integer.compare(s1.length(), s2.length()); } } 이런 익명 클래스 방식은 코드가 너무 길기 때문에 자바는 함수형 프로그래밍에 적합하지 않다. 람다식 자바 8부터 추상 메서드 하나짜리 인터페이스는 특별한 의미를 인정받아 인스턴스를 람다식을 사용..

    [Java] 함수형 인터페이스와 람다 표현식

    등장 배경 함수형 인터페이스와 람다식이 등장한 이유를 알기 위해 다음 Person 인터페이스와 이를 구현한 Student 클래스를 보자. interface Person { void study(String subject){} } class Student implement Person { @Override public void study(String subject) { System.out.println(subject + " 공부"); } } 인터페이스를 구현하는데 상당히 많은 줄을 차지한다. 이것을 해결하기 위해 자바8에서부터 람다식을 지원한다. 람다식은 코드를 간결하게 만들기 위해 등장한 만큼 추측할 수 있는 모든 정보를 제거하여 간결하게 표현한다. 위의 코드를 람다식으로 표현하면 다음과 같다. Perso..