자바 튜토리얼

자바 홈 자바 소개 자바 시작하기 자바 구문 자바 주석 자바 변수 자바 데이터 유형 자바 타입 캐스팅 자바 연산자 자바 문자열 자바 수학 자바 부울 자바 If...Else 자바 스위치 자바 while 루프 자바 For 루프 자바 중단/계속 자바 배열

자바 메소드

자바 메소드 자바 메소드 매개변수 자바 메소드 오버로딩 자바 범위 자바 재귀

자바 클래스

자바 OOP 자바 클래스/객체 자바 클래스 속성 자바 클래스 메소드 자바 생성자 자바 수정자 자바 캡슐화 자바 패키지 / API 자바 상속 자바 다형성 자바 내부 클래스 자바 추상화 자바 인터페이스 자바 열거형 자바 사용자 입력 자바 날짜 자바 배열 목록 자바 링크드리스트 자바 해시맵 자바 해시셋 자바 반복자 자바 래퍼 클래스 자바 예외 자바 정규식 자바 스레드 자바 람다

자바 파일 처리

자바 파일 Java 파일 작성/쓰기 자바 읽기 파일 자바 삭제 파일

자바 방법

두 개의 숫자 더하기

자바 참조

자바 키워드 자바 문자열 메소드 자바 수학 메소드

자바 예제

자바 예제 자바 컴파일러 자바 연습 자바 퀴즈 자바 인증서


자바 람다 표현식


자바 람다 표현식

람다 표현식은 Java 8에 추가되었습니다.

람다 표현식은 매개변수를 받아 값을 반환하는 짧은 코드 블록입니다. 람다 표현식은 메서드와 유사하지만 이름이 필요하지 않으며 메서드 본문에서 바로 구현할 수 있습니다.


통사론

가장 단순한 람다 표현식에는 단일 매개변수와 표현식이 포함됩니다.

parameter -> expression

둘 이상의 매개변수를 사용하려면 괄호로 묶습니다.

(parameter1, parameter2) -> expression

표현이 제한적입니다. 즉시 값을 반환해야 하며 변수, 할당 또는 또는 같은 문을 포함할 수 if없습니다 for. 더 복잡한 작업을 수행하기 위해 코드 블록을 중괄호와 함께 사용할 수 있습니다. 람다 식이 값을 반환해야 하는 경우 코드 블록에 문이 있어야 합니다 return.

(parameter1, parameter2) -> { code block }

람다 표현식 사용

람다 표현식은 일반적으로 함수에 매개변수로 전달됩니다.

예시

ArrayList목록의 모든 항목을 인쇄하려면 's forEach()메소드 에서 람바 표현식을 사용하십시오 .

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(9);
    numbers.add(8);
    numbers.add(1);
    numbers.forEach( (n) -> { System.out.println(n); } );
  }
}

변수 유형이 메서드가 하나만 있는 인터페이스인 경우 람다 표현식을 변수에 저장할 수 있습니다. 람다 식에는 해당 메서드와 동일한 수의 매개 변수와 동일한 반환 유형이 있어야 합니다. ConsumerJava에는 목록에서 사용하는 인터페이스( java.util패키지에 있음) 와 같은 많은 종류의 인터페이스가 내장되어 있습니다.

예시

Java Consumer인터페이스를 사용하여 변수에 람다 식을 저장합니다.

import java.util.ArrayList;
import java.util.function.Consumer;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(9);
    numbers.add(8);
    numbers.add(1);
    Consumer<Integer> method = (n) -> { System.out.println(n); };
    numbers.forEach( method );
  }
}

메서드에서 람다 식을 사용하려면 메서드에 단일 메서드 인터페이스가 있는 매개 변수가 형식으로 있어야 합니다. 인터페이스의 메서드를 호출하면 람다 표현식이 실행됩니다.

예시

람다 식을 매개변수로 사용하는 메서드를 만듭니다.

interface StringFunction {
  String run(String str);
}

public class Main {
  public static void main(String[] args) {
    StringFunction exclaim = (s) -> s + "!";
    StringFunction ask = (s) -> s + "?";
    printFormatted("Hello", exclaim);
    printFormatted("Hello", ask);
  }
  public static void printFormatted(String str, StringFunction format) {
    String result = format.run(str);
    System.out.println(result);
  }
}