일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- html
- html요소
- 80 to 443
- 자바의 장점
- tcp와 udp의 차이점
- Rename to
- 기술 면접
- CSS display 속성
- 신입개발자
- 리캡차
- 예외처리
- 스프링 부트
- 바닐라js
- Create
- Failed to read the 'responseText' property from 'XMLHttpRequest'
- multiarray
- 기술면접
- 네트워크
- Java
- 스프링부트
- Oracle
- 속성
- css
- 시맨틱 태그
- database
- 자바
- css position
- cs질문
- 구글 리캡차
- position속성
- Today
- Total
Building value
Java[람다식(Lambda)] 본문
람다식은 자바 8부터 추가된 함수형 프로그래밍을 지원하는 기능입니다.
람다식을 사용하면 코드를 간결하게 작성할 수 있으며, 함수를 객체처럼 다룰 수 있습니다.
람다식은 함수형 인터페이스를 구현하는 객체를 간편하게 만들 수 있습니다.
람다식의 기본 문법은 다음과 같습니다.
(parameter) -> { expression }
위 문법에서 parameter는 매개변수를 의미하며, expression은 람다식의 실행 내용을 나타냅니다.
만약 매개변수가 없다면, 괄호는 생략할 수 있습니다.
또한, 실행 내용이 단일 문장이라면, 중괄호도 생략할 수 있습니다.
다음은 람다식을 사용한 예시 코드입니다.
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
// 람다식을 사용하여 짝수를 필터링하고 출력하는 예시
list.stream()
.filter(number -> number % 2 == 0)
.forEach(System.out::println);
위 코드에서는 ArrayList를 생성한 후, stream() 메서드를 사용하여 스트림을 생성합니다.
그리고 filter() 메서드를 사용하여 짝수를 필터링한 후, forEach() 메서드를 사용하여 출력합니다.
이때 filter() 메서드에서 사용한 람다식은 number % 2 == 0으로, number가 2로 나누어 떨어지는지 검사합니다.
또한, forEach() 메서드에서 사용한 람다식은 System.out::println으로, 인자로 받은 값을 출력합니다.
public class Example {
public static void main(String[] args) {
// 람다식을 사용하여 Runnable 객체 생성
Runnable task = () -> {
for (int i = 0; i < 10; i++) {
System.out.println(Thread.currentThread().getName() + ": " + i);
}
};
// 스레드 생성
Thread thread1 = new Thread(task, "Thread 1");
Thread thread2 = new Thread(task, "Thread 2");
// 스레드 시작
thread1.start();
thread2.start();
}
}
// 출력 결과:
Thread 2: 0
Thread 1: 0
Thread 2: 1
Thread 1: 1
Thread 2: 2
Thread 1: 2
Thread 2: 3
Thread 1: 3
Thread 2: 4
Thread 1: 4
Thread 2: 5
Thread 1: 5
Thread 2: 6
Thread 1: 6
Thread 2: 7
Thread 1: 7
Thread 1: 8
Thread 1: 9
Thread 2: 8
Thread 2: 9
위 코드에서 Runnable 인터페이스를 구현하는 task 객체를 람다식으로 생성합니다.
이 객체를 이용하여 두 개의 스레드(thread1과 thread2)를 생성합니다.
각 스레드는 task 객체를 실행하여 for문을 실행하고, 0부터 9까지의 값을 출력합니다.
실행 결과는 실행할 때마다 다를 수 있습니다.
스레드에 대해서는 뒤에서 더 자세히 다뤄볼 예정입니다.
'Java' 카테고리의 다른 글
Java[스트림(Stream)] (0) | 2023.03.29 |
---|---|
Java[스레드(Thread)] (0) | 2023.03.29 |
Java[Iterator] (0) | 2023.03.29 |
Java[HashMap] (0) | 2023.03.29 |
Java[HashSet] (0) | 2023.03.28 |