반응형
스트림 처리를 위한 단계별 흐름을 살펴보겠습니다.
스트림처리는
소스(컬렉션, 배열, 파일) -> 오리지날 스트림 -> 필터링처리(중간처리) -> 매핑 처리(중간처리) -> 집계처리(최종처리) -> 결과
순서로 처리가 됩니다. 이런 순서로처리가 되고 난 이후에 대량의 데이터를 가공해서 축소 하는것을 리덕션이라고 불리겠습니다.
샘플)
List<Member> list = Arrays.asList(
new Member("홍길동", Member.MALE, 30),
new Member("김나리", Member.FEMALE, 20),
new Member("신용권", Member.MALE, 45),
new Member("박수미", Member.FEMALE, 27)
);
double ageAvg = list.stream()
.filter(m->m.getSex()==Member.MALE) // 남자요소
.mapToInt(Member::getAge) // 나이요소
.average() // 집계처리
.getAsDouble(); // double 출력을 위한 함수 호출
System.out.println("남자 평균 나이: " + ageAvg);
샘플 내용은 남자의 평균 나이를 구하는 구문입니다.
Member 변수라는 소스(회원 컬렉션, 리스트)가 있고 -> 오리지날 스트림(Member-남/녀) -> 남자요소 (Member-남)(필터링-중간처리) -> 나이 요소(age)(매핑-중간처리) -> 집계처리(average())(최종처리) -> 남자의 평균나이(결과)
각각의 파이프라인 별로 데이터 처리가 되겠습니다.
코드 내용)
이것이 자바다 (신용권의 Java 프로그래밍 정복)
반응형
'Programming > JAVA' 카테고리의 다른 글
[자바] java stream(스트림) 필터링(distinct, filter) 및 매핑(map) (0) | 2022.03.29 |
---|---|
[자바] java stream(스트림)이란 무엇이고 기본 활용 (0) | 2022.03.28 |
[java] Exception in thread "main" java.net.MalformedURLException: no protocol 자바 에러 (0) | 2021.03.26 |
[java] spring boot 실행 시 Permission denied 에러 (on linux) (0) | 2021.02.11 |
[java] 자바 HttpResponse 후 HttpEntity값 받기 (0) | 2021.02.04 |