Stream
[Java] 숫자형 스트림
[Java] 숫자형 스트림
2023.04.11이전에 reduce를 활용한 코드를 살펴보았다. Optional max = numbers.stream().reduce(Integer::max); 하지만 위 코드는 박싱 비용이 있다. 즉, 내부적으로 계산하기 전에 Integer를 기본형으로 언박싱해야 한다. 그렇지만 걱정할 필요없다. 스트림은 숫자 스트림을 효율적으로 처리할 수 있도록 기본형 특화 스트림을 제공한다. 기본형 특화 스트림 Java 8에서는 IntStream, DoubleStream, LongStream 이렇게 세 가지 기본형 특화 스트림을 제공하며 합계, 최대, 최소 등을 계산하는 sum, max, min 등의 리듀싱 연산 수행 메서드도 제공한다. 또 기본형 스트림에서 다시 객체 스트림으로 복원하는 기능도 제공한다. 다만, 특화 스트림은 오..
[Java] 스트림 연산
[Java] 스트림 연산
2023.04.07스트림에는 여러가지 중간 연산, 최종 연산이 있다. 한 번 살펴보자. 필터링 Predicate로 필터링 스트림 인터페이스는 filter 메서드를 지원한다. filter 메서드는 Predicate를 인수로 받아서 Predicate와 일치하는 모든 요소를 포함하는 스트림을 반환한다. 예를 들어, 다음과 같이 액션 영화만 필터링하여 모을 수 있다. List actionMovies = movies.stream() .filter(Movie::isActionGenre) .collect(Collectors.toList()); 고유 요소로 필터링 스트림은 고유 요소로 이루어진 스트림을 반환하는 distinct 메서드도 지원한다. 예를 들어, 다음은 모든 짝수를 선택하고 중복을 필터링하는 코드이다. List number..