반응형

스트림 처리를 위한 단계별 흐름을 살펴보겠습니다.

스트림처리는

소스(컬렉션, 배열, 파일) -> 오리지날 스트림 -> 필터링처리(중간처리) -> 매핑 처리(중간처리)  -> 집계처리(최종처리) -> 결과

순서로 처리가 됩니다. 이런 순서로처리가 되고 난 이후에 대량의 데이터를 가공해서 축소 하는것을 리덕션이라고 불리겠습니다.

 

샘플)

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 프로그래밍 정복)

반응형

+ Recent posts