728x90
반응형
람다식(Lambda Expressions)
개념
람다식은 간단히 말해서 익명 함수의 일종입니다. 람다식을 사용하면 메소드를 하나의 식(expression)으로 표현할 수 있으며, 이는 코드를 더 간결하게 만들어 줍니다. 람다식은 주로 함수형 인터페이스(단 하나의 추상 메소드를 가진 인터페이스)와 함께 사용됩니다.
기본 문법
(parameters) -> expression
또는
(parameters) -> { statements; }
예시
// 람다식을 사용하지 않은 경우
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Thread running");
}
}).start();
// 람다식을 사용한 경우
new Thread(() -> System.out.println("Thread running")).start();
함수형 프로그래밍(Functional Programming)
개념
함수형 프로그래밍은 "함수"를 일급 시민(first-class citizen)으로 취급하는 프로그래밍 패러다임입니다. 이는 데이터의 변형을 피하고, 상태 변경이나 가변 데이터를 피하는 순수 함수(pure function)의 사용을 강조합니다. Java에서는 java.util.function 패키지를 통해 다양한 함수형 인터페이스를 제공합니다.
함수형 인터페이스 예시
- Consumer<T>: 하나의 입력을 받고 반환하지 않는 연산을 수행합니다.
- Supplier<T>: 입력 없이 값을 반환합니다.
- Function<T,R>: 하나의 입력을 받아 결과를 반환합니다.
- Predicate<T>: 하나의 입력을 받아 boolean 값을 반환합니다.
스트림 API(Stream API)
Java 8에서는 컬렉션 처리를 위한 새로운 추상화인 스트림 API를 도입했습니다. 스트림 API를 사용하면 데이터의 필터링, 변환, 집계 등의 연산을 람다식을 사용하여 간결하게 표현할 수 있습니다.
List<String> names = Arrays.asList("John", "Jane", "Adam", "Tom");
List<String> filteredNames = names.stream()
.filter(name -> name.startsWith("J"))
.collect(Collectors.toList());
System.out.println(filteredNames); // [John, Jane]
결론
Java에서 람다식과 함수형 프로그래밍의 도입은 프로그래머가 더 간결하고, 효율적이며, 이해하기 쉬운 코드를 작성할 수 있게 해줍니다. 또한, 병렬 처리와 이벤트 처리 코드를 더욱 쉽게 구현할 수 있게 해주며, 코드의 가독성과 재사용성을 크게 향상시킵니다. Java의 이러한 현대적 기능들을 잘 활용한다면, 보다 효과적인 프로그래밍이 가능해질 것입니다.
728x90
반응형
'Java' 카테고리의 다른 글
Java 입출력과 파일 처리: 효율적인 데이터 관리 (40) | 2024.02.21 |
---|---|
Java 스레드와 동시성 프로그래밍: 병렬 처리의 효율성 극대화 (39) | 2024.02.21 |
Java 제네릭 프로그래밍: 타입 안전성과 코드 재사용성 향상 (31) | 2024.02.20 |
Java 패키지와 접근 제어자: 코드의 조직화와 보안 (38) | 2024.02.19 |
Java 예외 처리: 안정적인 애플리케이션 구축을 위한 필수 요소 (32) | 2024.02.19 |