자바 람 다 표현 식 을 1 분 안에 이해 하고 사용 하 는 법 을 가르쳐 드릴 게 요.
Lambda
표현 식 은java 8
에 포 함 된 중요 한 기능 중 하나 입 니 다.Lambda
표현 식 은 하나의 방법 으로 구 성 된 인터페이스 에서 간결 한 코드,즉 함수 인터페이스functional interface
를 작성 하 는 데 사 용 됩 니 다.Lambda
표현 식 도 간단 한 방식 으로 집합 을 옮 겨 다 니 는 데 사 용 됩 니 다.java 8
에서Lambda
표현 식 을 사용 하여 매우 간단명료 한 코드 를 실현 할 수 있다.Lambda
표현 식 은 함수 인터페이스 방법 을 정의 하고 이 인터페이스의 인 스 턴 스 를 되 돌려 줍 니 다.Lambda 표현 식 문법 은 읽 기 쉽 고 이해 하기 쉽다.
Lambda 표현 식 문법
(Argument part) -> Body part
다음은 몇 가지 예 이다.예제 1:방법 에 인자 가 필요 하지 않 으 면 메 시 지 를 인쇄 합 니 다.
() -> System.out.println("Your message");
예시 2:만약 방법 이 두 개의 파 라미 터 를 받 아들 이 고 업무 논 리 를 실행 하고 값 을 되 돌려 준다 면.
(int a, int b) -> a+b;
방법 은 a+b 의 값 을 되 돌려 줍 니 다.예시 3:만약 방법 이 하나의 파 라미 터 를 받 아들 이 고 업무 논 리 를 실행한다 면.
(String s) -> s + "Hello World";
연결 후 문자열 을 되 돌려 줍 니 다.3.Lambda 표현 식 예제 의 환경 요구 사항 을 실행 합 니 다.
JDK 8+
4.예제 1:Runnable 과 Lambda 표현 식 을 결합 하여 사용 합 니 다.
아래 의 예 에서 우 리 는
Runnable
스 레 드 를 실행 하고 있다.lambda
표현 식 에 앞서 실행 가능 한 스 레 드 를 실현 하기 위해 서 는 실행 가능 한 대상 을 얻 을 수 있 는 인터페이스 클래스 를 정의 해 야 합 니 다.이제
Runnable
표현 식 을 어떻게 사용 하여 같은 대상 을 실현 하 는 지 봅 시다.RunnableDemo.java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class RunnableDemo {
public static void main(String[] args) {
final ExecutorService exService = Executors.newSingleThreadExecutor();
Runnable r = () -> System.out.println("Lambda Expression Test with Runnable");
exService.execute(r);
}
}
출력Lambda Expression Test with Runnable
5.예제 2:Lambda 표현 식 을 사용 한 사용자 정의 함수 인터페이스 예제
이 예 에서 우 리 는 함수 식 인 터 페 이 스 를 만 들 고
lambda
표현 식 과 함께 사용 하 는 방법 을 알 게 될 것 입 니 다.함수 인터페이스 찾기.
Calculator.java
package com.concretepage.lambda;
public interface Calculator {
public int add(int n1, int n2);
}
주 클래스 가 함수 인 터 페 이 스 를 어떻게 사용 하 는 지lambda
표현 식 을 찾 습 니 다.CalculatorDemo.java
public class CalculatorDemo {
public static void main(String[] args) {
Calculator cal =(int a, int b) -> a+b;
int res = cal.add(5, 6);
System.out.println(res);
}
}
출력 은lambda
입 니 다.6.예제 3:비교 기(Comparator)와 Lambda 표현 식 을 결합 하여 사용 합 니 다.
현재
11
인터페이스 에서 사용자 정의 대상 을 포함 하 는 집합 을 정렬 하 는 표현 식 을 어떻게 사용 하 는 지 봅 니 다.ComparatorDemo.java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ComparatorDemo {
public static void main(String[] args) {
List<Student> list = new ArrayList();
list.add(new Student("Ram",20));
list.add(new Student("Shyam",22));
list.add(new Student("Kabir",18));
System.out.println("...befor sorting...");
for(Student s : list){
System.out.println(s.getName());
}
//define comparator
Comparator<Student> comp= (Student s1, Student s2) -> s1.getName().compareTo(s2.getName());
Collections.sort(list, comp);
System.out.println("...after sorting...");
for(Student s : list){
System.out.println(s.getName());
}
}
}
Student.java
public class Student {
private String name;
private int age;
public Student(String name,int age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
출력...befor sorting...
Ram
Shyam
Kabir
...after sorting...
Kabir
Ram
Shyam
7.예시 4:함수 인 터 페 이 스 를 사용 하여 Lambda 표현 식 의 집합 을 교체 합 니 다.
Comparator
에lambda
가방 을 도입 했다.java 8
java.util.function
의 도움 을 받 아 우 리 는java.util.function.Function
표현 식 을 반복 해서 집합 할 것 이다.API
인터페이스 에lambda
방법 이 있 는데 이 방법 은 사용자 가 정의 한 함수 에서 호출 됩 니 다.사용자 정의 인쇄 를 위 한 방법 을 만들어 야 한다 고 가정 하면 다음 과 같이 정의 할 것 입 니 다.
public String customShow(Function<Student,String> fun){
return fun.apply(this);
}
Function
류 에 상기 방법 을 추가 하여 다음 과 같은 예 를 실행 합 니 다.FunctionDemo.java
import java.util.ArrayList;
import java.util.List;
public class FunctionDemo {
public static void main(String[] args) {
List<Student> list = new ArrayList();
list.add(new Student("Ram",20));
list.add(new Student("Shyam",22));
list.add(new Student("Kabir",18));
for(Student st: list){
System.out.println(st.customShow(s->s.getName()+": "+s.getAge()));
}
}
}
출력Ram: 20
Shyam: 22
Kabir: 18
8.참고 문헌
【1】Lambda Expressions Java 8 Example
자바 람 다 표현 식 을 1 분 안에 이해 하고 사용 하 는 법 을 알려 드 리 는 이 글 은 여기까지 입 니 다.더 많은 자바 람 다 표현 식 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.