목록2025/05/31 (3)
devseop08 님의 블로그
5.1 필터링5.1.1 프레디케이트로 필터링스트림 인터페이스는 filter 메서드를 지원한다.filter 메서드는 프레디케이트를 인수로 받아서 프레디케이트와 일치하는 모든 요소를 포함하는 스트림을 반환한다.List vegetarianMenu = menu.stream() .filter(Dish::isVegitarian) .collect(toList());5.1.2 고유 요소 필터링스트림은 고유 요소로 이루어진 스트림을 반환하는 distinct 메서드도 지원한다.고유 여부는 스트림에서 만든 hashCode, equals로 결정된다.List numbers = Array.asList(1, 2, 1, 3..
4.1 스트림이란 무엇인가?스트림은 자바 8 API에 새로 추가된 기능이다.스트림을 이용하면 선언형으로 컬렉션 데이터를 처리할 수 있다, 즉 데이터를 처리하는 임시 구현 코드 대신 질의로 표현할 수 있다는 것이다.스트림을 이용하면 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있다.다음 예제는 저칼로리의 요리명을 반환하고 칼로리를 기준으로 요리를 정렬하는 자바 7 코드다.List lowCaloricDishes = new ArrayList();for (Dish dish : menu){ if(dish.getCalories() (){ public int compare(Dish dish, Dish dish2){ return Integer.compare(dish1, ..
1.1 자바 역사의 흐름자바 8 등장 이전까진, 멀티 코어를 사용하는 병렬 실행 환경을 잘 활용하지 못했다.하나의 코어 외의 나머지 코어를 활용하려면 쓰레드를 사용해야 한다고 했지만, 쓰레드를 사용하면 관리가 어렵고 많은 문제를 야기했다.자바는 이러한 병렬 실행 환경을 쉽게 관리하고 에러가 덜 발생하는 방향으로 진화하려 노력했다.자바 8에서는 병렬 실행을 새롭고 단순한 방식으로 접근할 수 있는 방법을 제공한다.자바 9에서는 리액티브 프로그래밍이라는 병렬 실행 기법을 지원한다.RxJava(리액티브 스트림 툴킷)를 표준적인 방식으로 지원한다.자바 8은 자바 역사의 흐름에 있어서, 멀티코어 프로세서의 쉽고 효과적인 활용과 간결한 코드의 작성이라는 요구 사항을 기반으로 한다.이러한 요구 사항을 충족하고자 자바 ..