고양이 여름이의 지식채널

JAVA 람다 표현식 설명과 예제 (Lambda Expression) 본문

Programming/JAVA

JAVA 람다 표현식 설명과 예제 (Lambda Expression)

썸머캣 2023. 3. 29. 22:22

자바 8에서는 람다 표현식이 도입되었습니다. 람다 표현식은 익명 함수를 생성하는 간단한 방법입니다. 이를 통해 코드의 가독성과 유지 보수성이 향상됩니다.

 

람다 표현식의 기본적인 형태는 다음과 같습니다.

(parameter) -> { body }

parameter는 매개변수 목록을 의미하며, body는 람다 표현식이 실행될 코드 블록을 의미합니다. body는 중괄호{ } 로 감싸져 있으며, 코드가 한 줄인 경우 중괄호를 생략할 수 있습니다.

 

람다 표현식을 이용하면 함수형 인터페이스를 간단하게 구현할 수 있습니다. 예를 들어, 다음과 같은 함수형 인터페이스가 있다고 가정해봅시다.

@FunctionalInterface
interface MyFunction {
    int apply(int x, int y);
}

이를 람다 표현식으로 구현해보겠습니다.

MyFunction add = (x, y) -> x + y;
MyFunction subtract = (x, y) -> x - y;
MyFunction multiply = (x, y) -> x * y;

이제 add, subtract, multiply는 각각 두 개의 정수를 입력받아 연산 결과를 반환하는 함수를 나타내게 됩니다.

 

다음은 람다 표현식을 이용하여 리스트 요소를 출력하는 예제 코드입니다.

List<String> list = Arrays.asList("메시", "호날두", "손흥민");

# 리스트의 각 요소를 입력받아 해당 요소를 출력
list.forEach((str) -> System.out.println(str));

이를 통해 불필요한 반복문을 사용하지 않고도 간단하게 리스트 요소를 출력할 수 있습니다.

 

 

반응형

 

 

(추가)람다 표현식을 이용한 코드 예제

 

- 람다 표현식을 이용한 정렬

List<String> names = Arrays.asList("Messi", "Ronaldo", "Son", "Neymar");

// 문자열 길이를 기준으로 정렬
Collections.sort(names, (s1, s2) -> s1.length() - s2.length());

// 결과 출력
System.out.println(names);

 

- 람다 표현식을 이용한 컬렉션 요소 처리

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

// 각 요소를 2배로 만들기
numbers.replaceAll(n -> n * 2);

// 결과 출력
System.out.println(numbers);

 

- 람다 표현식을 이용한 쓰레드 처리

ExecutorService executorService = Executors.newSingleThreadExecutor();

// 람다 표현식을 이용하여 Runnable 객체 생성
Runnable task = () -> {
    System.out.println("Task is being executed by thread: " + Thread.currentThread().getName());
};

// ExecutorService를 이용하여 스레드 실행
executorService.execute(task);

// ExecutorService 종료
executorService.shutdown();

 


 

JAVA 예외처리 방법 (try-catch, throws, try-with-resources, finally)

 

JAVA 예외처리 방법 (try-catch, throws, try-with-resources, finally)

자바에서는 예외 처리를 위한 다양한 방법이 제공됩니다. 이번 포스팅에서는 try-catch문, throws 키워드, finally 블록, try-with-resources 구문 등의 예외 처리 방법에 대해 자세히 살펴보겠습니다 try-catch

summer-cat93.tistory.com

 

 

728x90
반응형
Comments