샘플 파일 생성 1) Product.java public class Product { private int idx; private String productName; private int ordCnt; private int totalCnt; public int getIdx() { return idx; } public String getProductName() { return productName; } public int getOrdCnt() { return ordCnt; } public int getTotalCnt() { return totalCnt; } public Product(int idx, String productName, int ordCnt, int totalCnt) { this.idx = i..
소스코드 : https://github.com/westssun/moderninjava8/tree/master/src/main/java/ModernInJava8/ch4_5_6_stream GitHub - westssun/moderninjava8: [BOOK] 모던 인 자바8 [BOOK] 모던 인 자바8. Contribute to westssun/moderninjava8 development by creating an account on GitHub. github.com 예제 실행을 위한 DTO @Data public class SampleDto { private int idx; private String name; private String gender; } 1) 스트림 기본 /** * 기존 Java7 코..
스트림 연산 java.util.stream.Stream 인터페이스는 많은 연산을 정의한다. 스트림 인터페이스의 연산은 2가지로 구분된다. List names = menu.stream() // 요리 리스트에서 스트림 얻기 .filter(dish -> dish.getCalories() > 300) // 중간연산 .map(Dish::getName) // 중간연산 .limit(3) // 중간연산 (쇼트서킷) .collect(toList()); // 스트림을 리스트로 변환 1) 중간 연산 : 연결할 수 있는 스트림 연산 (filter, map, limit) 2) 최종 연산 : 스트림을 닫는 연산 (collect) 중간 연산 filter나 sorted 같은 중간 연산은 다른 스트림을 반환한다. 중간 연산은 중간 연..
도입 모든 자바 애플리케이션은 컬렉션을 만들고 처리하는 과정을 포함한다. 컬렉션은 대부분의 프로그래밍 작업에 사용될 정도로 어디서든 사용되어지고있다. 하지만 컬렉션을 많이 사용함에도 불구하고 완벽한 컬렉션 연산을 지원하기에는 아직까지도 부족하다. 많은 요소를 포함하는 컬렉션은 어떻게 처리해야할까? 성능을 높이려면 멀티코어 아키텍처를 활용하여 병렬로 컬렉션의 요소를 처리해야한다. 하지만 병렬 처리 코드를 구현하는 것은 단순 반복 처리 코드에 비해 복잡하고 어렵다. 이러한 복잡한 코드는 디버깅도 어렵다. 프로그래머가 귀중한 시간을 절약하고, 편리한 삶을 누릴 수 있도로 자바 언어 설계자들이 내린 결정이 바로 스트림이다. 스트림이란? 스트림은 자바 8 API에 새로 추가된 기능이다. 스트림은 데이터 컬렉션 반..