반응형
1.람다식
: 익명구현객체를 생성 하는 두번째 방법.
: 이름이 없는 함수식을 처리하겠다.
1)함수적 인터페이스(functional interface)
: 인터페이스에 선언된 추상메소드(abstract method)의 개수가 오직 하나뿐인 인터페이스
: 상수(0....N개), 추상메소드(1개), 디폴트 메소드(0....N개), 정적메소드(0....N개)
2)타겟 타입(target type)
:람다식이 구현할 함수적 인터페이스를 "해당 람다식의 타겟타입"이라고 한다.
**functional programming
객체를 만들지 않고 함수(function(=mtehod))로 바로 처리해버리는 프로그램. 요즘 많이 사용되는 프로그램이다.
많은 데이터를 빠른 속도로 처리하기 위해서 객체생성 시간도 아깝다.
따라서, 람다식에서 익명구현객체를 생성한다.
수학에서 람다식의 사용방식
(매개변수) -> {식의 전개}
(매개변수의 선언들..) -> {실행코드들...}
-람다식 사용하는이유
- 코드가 매우 간결해진다.
- 컬렉션 요소(대용량 데이터)를 필터링 또는 매핑(타입변환)이 쉽게 집계
2.람다식 기본 문법
( 타입 매개변수, ... ) -> { 실행문; ... }
추상 메소드가 하나이기 때문에 메소드 선언을 할 필요가 없다.
예제를 통해 점점 간단해지는 코드 표현을 확인 할 수 있다.
ex)
MyfunctionalInterface(인터페이스) - MyfunctionalInterfaceExam(실행클래스)
뿐만아니라 리턴값 조차 생량이 가능하다.
3.중첩클래스에서 람다식어려우면 넘어가도 된다.
: 클래스 블록 안에서, 새로이 선언된 클래스를 의미
-->별도의 이름을 부여 : "멤버 클래스"라고 부름
: 메소드 블록 안에서, 새로이 선언된 클래스를 의미
-->별도의 이름을 부여 : "로컬 클래스"라고 부름
이 중첩클래스를 포함하고 있는 바깥쪽 클래스를 Outer Class라 한다.
Outer Class안에 중첩된 클래스는 Inner Class라고 한다.
ex)
**중첩클래스(Nested Class)
위의 예제를 이어 중첩클래스를 살펴보겠다.
ex)
위의 예제는 중첩클래스 선언하는 방법을 나타낸다.
...
4.표준 API의 함수적 인터페이스
: 람다식을 사용하기 위해 java.util.function 패키지에 포함되어 있는 인터페이스이다.
1)Consumer 인터페이스
: 매개값만 있고 리턴값이 없는 추상 메소드를 가진다.
데이터를 소비할때 사용한다. 안에서만 소비하기 때문에 리턴값이 없어 void를 가진다.
ex)
2)Supplier 인터페이스
:매개값은 없고 리턴값만 있는 추상 메소드를 가진다.
ex)
3)Function 인터페이스
:매개값과 리터값이 모두 있는 추상 메소드를 가진다.
:매핑(타입 변환)용으로 자주 쓰인다. 즉, 매개값이 Function에 의해 다른 타입으로 리턴된다.
:대용량 데이터를 정제할때 사용한다.
//------------------------------
Thread와 람다식을 이용한 예제
ex)
반응형
'JAVA' 카테고리의 다른 글
[JAVA 개념11] 스트림(Stream) (0) | 2018.11.13 |
---|---|
[JAVA 개념10] 멀티 스레드(Multi Thread) (1) | 2018.11.13 |
[JAVA 개념8] 제네릭 (0) | 2018.11.13 |
[JAVA 개념7] 컬렉션 프레임워크3 (Map) (0) | 2018.11.13 |
[JAVA 개념6] 컬렉션 프레임워크2 (Set) (0) | 2018.11.13 |
댓글