언어는 하드웨어나 프로그래머 기대의 변화에 부응하는 방향으로 변화해야한다.다음은 사과 목록을 무게순으로 정렬하는 고전적 코드다.이 코드는 자바 8을 이용하면 자연엉에 더 가깝게 간단한 방식으로 구현할 수 있다.멀티코어 CPU의 대중화와 같은 하드웨어의 발전은 자바 8에
어떤 상황에서 일을 하든 소비자 요구사항은 항상 바뀐다.변화하는 요구사항은 소프트웨어 엔지니어링에서 피할 수 없는 문제다. 시시각각 변하는 사용자 요구사항에 어떻게 대응해야 할까 ? 특히 우리의 엔지니어링적인 비용이 가장 최소화 될 수 있으면 좋겠다. 그뿐 아니라 새로
저번 장에서 동작 파라미터를 이용하여 변화하는 요구사항에 효과적으로 대응하는 코드를 구현해보았다. 또한 정의한 코드 블록을 다른 메서드로 전달 할 수 있다. 따라서 파라미터화를 이용하면 더 유연하고 재사용할 수 있는 코드를 만들 수 있다. 익명 클래스로 다양한 동작을
전 편에 이어서 계속, 메서드 참조와 생성자 참조를 활용하여 조금 더 컴팩트한 람다와 람다를 활용하는 방법을 중점적으로 다뤄본다. 좀 더 세련되고 간결해진 람다를 향해 Let's go ~!1편을 못보신 분들은 바로 전 편인 람다 표현식 (1) 블로그 포스팅을 참고해주시
스트림이 무엇인지, 컬렉션과 스트림을 비교해보고 내부 반복과 외부 반복에 대해, 중간 연산과 최종 연산에 대해 알아본다.자바에 컬렉션이 없다면 무슨 일이 벌어질까 ? 거의 모든 자바 애플리케이션이 컬렉션을 만들고 처리하는 과정을 포함한다. 컬렉션으로 데이터를 그룹화,
그래서 스트림을 어떻게 활용할 것인가 ? 이 장에서는 스트림 API 지원하는 다양한 연산을 살펴본다. 자바 8과 9에서 추가된 다양한 연산을 살펴본다. 스트림 API가 지원하는 연산을 이용하여 필터링, 슬라이싱, 매핑, 검색, 매칭, 리듀싱 등 다양한 데이터 처리 질의
이전 챕터에 이어서 스트림을 활용하는 방법에 대해 더욱 자세히 알아본다.이전 장 chpt 03에서 메서드로 스트림 요소의 합을 구하는 예제를 살펴봤다. 예를 들어 다음처럼 메뉴의 칼로리 합계를 계산할 수 있다.사실 위 코드엔 박싱비용이 숨어있다. 내부적으로 합계를 계산
스트림은 데이터 집합을 멋지게 처리하는 게으른 반복자 이 장에서는 reduce가 그랬던 것처럼 collect 역시 다양한 요소 누적 방식을 인수로 받아 스트림을 최종결과과로 도출하는 리듀싱 연산을 수행할 수 있음을 설명한다. 00 컬렉터란? 스트림 연산에서 최종 연산
데이터 컬렉션 관련 동작을 얼마나 쉽게 병렬로 실행할 수 있는지 설명한다. 이번 포스팅에서는 병렬 스트림으로 데이터를 병렬 처리하고, 병렬 스트림의 성능 분석에 대해서 알아보자 지금까지 새로운 스트림 인터페이스를 이용하여 데이터 컬렉션을 선언형으로 제어하는 방법을 살
이번 chpt에서는 지난 chpt에 이어 포크/조인 프레임워크와 spliterator 인터페이스에 대해 알아보는 내용을 다룰 것이다. 포크/조인 프레임워크는 병렬화할 수 있는 작업을 재귀적으로 작게 분할하여 서브태스크 각각의 결과를 합쳐 전체 결과를 만들도록 설계되어있
컬렉션 팩토리 사용하기리스트 및 집합과 사용할 새로운 관용 패턴 배우기맵과 사용할 새로운 관용 패턴 배우기컬렉션 API가 없었다면 개발자는 힘들었을거다. 거의 모든 자바 애플리케이션에서 컬렉션을 사용한다. 지금까지 컬렉션과 스트림 API를 이용하여 데이터 처리 쿼리를