Book Review/Modern Java In Action

Book Review/Modern Java In Action

[모던 자바 인 액션] Chapter5. 스트림 활용

1. 필터링 프레디케이트로 필터링 스트림 인터페이스는 filter 메서드를 지원한다. filter 메서드는 플레디케이트(불리언을 반환하는 함수)를 인수로 받아서 프레디케이트와 일치하는 모든 요소를 포함하는 스트림을 반환한다. List vegetarianMenu = menu.stream() .filter(Dish::isVegetarian) .collect(toList()); // 채식 요리인지 확인하는 메서드 참조 고유 요소 필터링 스트림은 고유 요소로 이루어진 스트림을 반환하는 distinct 메서드도 지원한다. 리스트의 모든 짝수를 선택하고 중복을 필터링한다. List numbers = Arrays.List(1, 2, 1, 3, 3, 2, 4); numbers.stream() .filter(i -> i..

Book Review/Modern Java In Action

[모던 자바 인 액션] Chapter4. 스트림 소개

1. 스트림이란 무엇인가? 데이터 컬렉션 반복을 멋지게 처리하는 기능 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있다. 다음 예제는 저칼로리의 요리명을 반환하고, 칼로리를 기준으로 요리를 정렬하는 자바 7 코드 기존 코드 List lowCaloricDishes = new ArrayList(); for (Dish d : dishes) { if (d.getCalories() < 400) { lowCaloricDishes.add(d); } } List lowCaloricDishesName = new ArrayList(); Collections.sort(lowCaloricDishes, new Comparator() { // 익명 클래스로 요리 정렬 @Override public int..

Book Review/Modern Java In Action

[모던 자바 인 액션] Chapter3. 람다 표현식

1. 람다란 무엇인가? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다의 특징 익명: 보통의 메서드와 달리 이름이 없으므로 익명이라 표현한다. 구현해야 할 코드에 대한 걱정거리가 줄어든다. 함수: 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. 전달: 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있다. 간결성: 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요가 없다. 람다의 구성 // 기존 코드 Comparator byWeight = new Comparator() { @Override public int compare(Apple a1, Apple a2) { return a1.getWeight().compareTo(a2.getWe..

Book Review/Modern Java In Action

[모던 자바 인 액션] Chapter2. 동작 파라미터화 코드 전달하기

동적 파라미터화 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록을 의미한다. 리스트의 모든 요소에 대해서 '어떤 동작'을 수행할 수 있음 리스트 관련 작업을 끝낸 다음에 '어떤 다른 동작'을 수행할 수 있음 에러가 발생하면 '정해진 어떤 다른 동작'을 수행할 수 있음 1. 변화하는 요구사항에 대응하기 기존의 농장 재고목록 애플리케이션에 리스트에 녹색 사과만 필터링하는 기능을 추가한다고 가정하자. 사과 색을 정의하는 Color num이 존재한다고 가정하자. 첫 번째 시도: 녹색 사과 필터링 enum Color { RED, GREEN } public static List filterGreenApples(List inventory) { List result = new ArrayList(); // 사과 누..

Book Review/Modern Java In Action

[모던 자바 인 액션] Chapter1. 자바 8, 9, 10, 11: 무슨 일이 일어나고 있는가?

자바8은 간결한 코드, 멀티코어 프로세서의 쉬운 활용이라는 두 가지 요구사항을 기반으로 한다. 일단 자바 8에서 제공하는 새로운 기술이 어떤 것인지 확인하자. 스트림 API 메서드에 코드를 전달하는 기법 인터페이스의 디폴트 메서드 1. 자바 8의 3가지 프로그래밍 개념 스트림 처리 스트림이란? 한 번에 한 개씩 만들어지는 연속적인 데이터 항목들의 모임이다. 스트림 API의 핵심은 기존에는 한 번에 한 항목을 처리했지만 이제 자바 8에서는 우리가 하려는 작업을 고수준으로 추상화해서 일련의 스트림으로 만들어 처리할 수 있다는 것이다. 또한 입력 부분을 여러 CPU 코어에 쉽게 할당할 수 있다는 부가적인 이득도 얻을 수 있다. 스레드라는 복잡한 작업을 사용하지 않으면서도 공짜로 병렬성을 얻을 수 있다. 동작 ..

초보병일이
'Book Review/Modern Java In Action' 카테고리의 글 목록