자바 람 다 표현 식 을 1 분 안에 이해 하고 사용 하 는 법 을 가르쳐 드릴 게 요.

6059 단어 JavaLambda표현 식
머리말
  • Lambda표현 식 은java 8에 포 함 된 중요 한 기능 중 하나 입 니 다.

  • Lambda표현 식 은 하나의 방법 으로 구 성 된 인터페이스 에서 간결 한 코드,즉 함수 인터페이스functional interface를 작성 하 는 데 사 용 됩 니 다.
  • Lambda표현 식 도 간단 한 방식 으로 집합 을 옮 겨 다 니 는 데 사 용 됩 니 다.
  • 단일 한 방법의 인터페이스 에 대해 우리 가 익명 류 나 내부 류 를 사용 하 든java 8에서Lambda표현 식 을 사용 하여 매우 간단명료 한 코드 를 실현 할 수 있다.
  • Lambda표현 식 은 함수 인터페이스 방법 을 정의 하고 이 인터페이스의 인 스 턴 스 를 되 돌려 줍 니 다.
  • 2.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 표현 식 의 집합 을 교체 합 니 다.Comparatorlambda가방 을 도입 했다.java 8java.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 분 안에 이해 하고 사용 하 는 법 을 알려 드 리 는 이 글 은 여기까지 입 니 다.더 많은 자바 람 다 표현 식 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기