개발자 끄적끄적
람다식, 스트림(Stream) 본문
<람다식>
- 함수적 프로그래밍 기법
- 함수식 프로그래밍은 병행처리나 이벤트 지향 프로그래밍에 적합하다
- 자바 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 |