참치코더의 꿈 메모장

JSP// 람다식 사용법 , 스트림 API_1 본문

JSP

JSP// 람다식 사용법 , 스트림 API_1

참치깡 2020. 2. 21. 00:32
728x90

람다식

 

람다식의 기본 표현 : (파라미터1,파라미터2) -> EL식

 

람다식을 EL 식으로 표현한다면 

 

${ex = (a,b) -> a>b ? true : false ;" } (기본)

 

 

이런식으로 표현되는데 ex변수 에다가 람다식을 대입한 EL 식을 출력하게 된다.

(세미콜론을 사용하지 않으면 뒤에 객체 이름이 자동으로 출력된다  이름 미출력시 ;" 사용)

 

람다식을 특정변수에 넣지 않고도 사용이 가능하다.

 

${((a,b) -> a>b ? true: false)( 66, 63 )} (변수 X)

 

 

 

앞에서 람다식을 선언하고 뒤에 괄호로 호출을 하는 것이다.

또한 제귀호출도 가능하다.

 

${factorial = n -> n == 1 ? 1 : n*factorial(n-1); "}  // ;'은 객체 이름 생략 (재귀호출)

 

*대입하려는 파라미터가 1개면 파라미터를 감싼 괄호를 삭제해도 된다. 

 

 

 

스트림 API_1

 

 

객체에 대해 stream( )을 기본적으로 사용하면 스트림 객체를 생성한다. 이 stream( ) 에다가 덕지덕지 이어붙여서 식을 도출해내는 것이

스트림 API 이다.

 

filter( )메서드는 스트림의 각 원소에 대해 람다식을 실행하고 그 결과가 true인 원소를 제공하는 새로운 스트림을 생성한다.

 

<ex가 배열일경우>

 

ex.stream( ).filter(x -> x % 2 == 0).toList( )

 

filter로 stream의 원소중에서 짝수인 배열을 골라서 toList로 새로운 배열을 생성한다.

 

 

map( )메서드는 한 개 파라미터를 갖고 결과로 파라미터를 변환한 새로운 값을 리턴한다.

 

<ex가 배열일경우>

 

ex.stream( ).map(x -> x*x*x).toList( )

 

map으로 stream의 원소를 3배로 만들고 그 값을 새로운 배열에 추가한다.

 

 

* filter( ) 메서드와  map( ) 메서드는 섞어서 사용할 수 있다.

728x90
Comments