개발자 끄적끄적

람다식, 스트림(Stream) 본문

JAVA

람다식, 스트림(Stream)

햏치 2023. 3. 4. 18:55

<람다식>
- 함수적 프로그래밍 기법
- 함수식 프로그래밍은 병행처리나 이벤트 지향 프로그래밍에 적합하다
- 자바 8버전부터 람다식을 지원하고 있다
- 람다식의 장점은 자바 코드가 간결해지고, 컬렉션 요소를 필터링하거나
  매핑해서 원하는 결과를 손쉽게 집계할 수 있다
- 람다식은 매개변수를 가진 코드 블럭이지만 런타임시에는 익명 구현 객체를
  생성하여 실행된다
*익명 구현 객체 new A(); <-1회성



<기본 문법>
(매개변수 타입 매개변수, ... ) -> {처리내용; [return 값]}
*'->'는 화살표 함수(arrow function)

- 매개변수가 없는 경우 ()는 반드시 사용해야 한다
() -> { ... }

- 매개 변수 타입은 실행 시 대입되는 값에 따라 자동 인식 될 수 있기 때문에
  기술하지 않아도 된다
(변수형 변수 , ... ) -> { ... }
(변수, ... ) -> { ... }

- 매개변수가 하나이고 실행문장도 한개라면 (), {}를 생략할 수 있다
a -> System.out.print(a)

- {}안에 return 문장만 있다면 return 키워드와 {}를 생략할 수 있다
(x,y) -> {return x+y};
(x,y) -> x+y

 

<스트림(Stream)>
- 스트림(Stream)은 자바 8버전 부터 추가된 기능으로 배열이나 Collections의 
  저장 요소를 하나씩 참조하여 람다식으로 처리할 수 있도록 도와주는 반복자

ex)List에 저장된 데이터를 출력하기 위해 일반적인 방법
List<String> list = new Array<String>();
list.add("강아지");
list.add("호랑이");
list.add("고양이");
list.add("망아지");

for(String s : list){
  System.out.println(s);
}

ex)위의 코드를 스트림으로 바꾸어 표현 -1
List<String> list = new ArrayList<String>();
list.add("강아지");
list.add("호랑이");
list.add("고양이");
list.add("망아지");

//lambda
Stream<String> stream = list.stream();
stream.forEach(x -> System.out.println(x));

'JAVA' 카테고리의 다른 글

map, distinct, filter, sorted, reduce, collect  (0) 2023.03.04
Properties, Thread - (2)  (0) 2023.03.04
Properties, Thread - (1)  (0) 2023.03.04