본문 바로가기

java8 in action4

[Java8 in action] Chap7. 병렬 데이터 처리와 성능 이 장에서 다룰 내용병렬 스트림으로 데이터를 병렬 처리하기병렬 스트림의 성능 분석포크/조인 프레임워크Spliterator로 스트림 데이터 쪼개기7.1 병렬 스트림스트림 인터페이스를 이용하면 아주 간단하게 요소를 병렬로 처리할 수 있다.컬렉션에 parallelStream을 호출하면 병렬스트림(parallel stream)이 생성된다.병렬 스트림이란?각각의 스레드에서 처리할 수 있도록 스트림 요소를 여러 청크로 분할한 스트림.병렬 스트림을 이용하면 모든 멀티코어 프로세서가 각각의 청크를 처리하도록 할당할 수 있다.예제 : 숫자 n을 인수로 받아서 1부터 n까지의 모든 숫자의 합계를 반환하는 메서드.public static long sequentialSum(long n) { return Stream.itera.. 2017. 2. 20.
[Java8 in action] Chap6. 스트림으로 데이터 수집 자바 8의 스트림이란 데이터 집합을 멋지게 처리하는 게으른 반복자라고 생각할 수 있다.스트립 연산은 filter 또는 map 과 같은 중간 연산과 count, findFirst, forEach, reduce 등의 최종 연산으로 구분할 수 있다.중간 연산 : 한 스트림을 다른 스트림으로 변환하는 연산여러 연산을 연결할 수 있다.스트림 파이프라인을 구성하며, 스트림의 요소를 소비하지 않는다.최종 연산 : 스트림의 요소를 소비해서 최종 결과를 도출한다.스트림 파이프라인을 최적화하면서 계산 과정을 짧게 생략하기도 한다.Collection, Collector, collect를 헷갈리지 않도록 주의!collect와 Collector로 구현할 수 있는 질의 예제통화별로 트랜잭션을 그룹화한 다음에 해당 통화로 일어난 .. 2017. 2. 3.
[Java8 in action] Chap5. 스트림 활용 5.1 필터링과 슬라이싱5.1.1 프레디케이트로 필터링스트림 인터페이스는 filter 메서드를 지원한다.filter 메서드는 프레디케이트(불린을 반환하는 함수)를 인수로 받아서 일치하는 모든 요소를 포함하는 스트림을 반환한다.List vegetarianMenu = menu.stream() .filter(Dish::isVegetarian) .collect(toList());모든 채식 요리를 필터링해서 채식 메뉴 생성. 5.1.2 고유 요소 필터링스트림은 고유 요소로 이루어진 스트림을 반환하는 distinct 메서드를 지원한다.고유 여부는 스트림에서 만든 객체의 hashCode, equals로 결정.List numbers = Arrays.asList(1, 2, 1, 3, 3, 2, 4); numbers.st.. 2017. 2. 2.
[Java8 in action] Chap4. 스트림 소개 컬렉션은 자바에서 가장 많이 사용하는 기능 중 하나다.거의 모든 자바 애플리케이션은 컬렉션을 만들고 처리하는 과정을 포함.컬렉션으로 데이터를 그룹화하고 처리할 수 있다.대부분의 자바 애플리케이션에서는 컬렉션을 많이 사용하지만 완벽한 컬렉션 관련 연산을 지원하려면 한참 멀었다.요리 애플리케이션 예시대부분의 비즈니스 로직에는 요리를 카테고리(예를 들면 채식주의자용)로 그룹화 한다든가 가장 비싼 요리를 찾는 등의 연산이 포함된다.데이터베이스에서는 선언형으로 이와 같은 연산을 표현할 수 있다.칼로리가 낮은 요리명 선택 - SELECT name FROM dishes WHERE calorie < 400요리의 속성을 이용하여 어떻게 필터링 할 것인지는 구현할 필요가 없다.자바의 경우 반복자, 누적자등을 이용.SQL에.. 2017. 2. 1.