스트림
-
Java - 스트림(Stream) 최종 처리 메서드의 종류와 사용 방법(3)Language/Java 2022. 12. 1. 16:03
스트림(Stream) 최종 처리 메서드의 종류와 사용 방법(3) 요소를 그룹핑해서 수집 저번 시간에는 그룹핑을 제외한 스트림의 수집 방식에 대해 알아보았다. 이번 게시글에서는 collect() 메서드를 이용해서 그룹핑하는 방법을 알아보겠다. collect() 메서드는 단순히 요소를 수집하는 기능 이외에 컬렉션의 요소들을 그룹핑해서 Map 객체를 생성하는 기능도 제공한다. 여기서 collect() 메서드를 호출할 때 매개 변수로 groupingBy() 또는 groupingByConcurrent() 메서드를 사용하면 된다. 첫 번째는 매개변수로 Function classifier를 사용하는 groupingBy() 메서드이다. 이 메서드의 리턴 타입을 보면, Collector로, T를 K로 매핑한 후, 키가 ..
-
Java - 스트림(Stream) 최종 처리 메서드의 종류와 사용 방법(2)Language/Java 2022. 12. 1. 13:58
스트림(Stream) 최종 처리 메서드의 종류와 사용 방법(2) 최종 처리 메서드의 종류 지난 게시글에서는 수집을 제외한 최종 처리 메서드에 대해서 알아보았다. 이번 게시글에서는 수집을 사용한 최종 처리 메서드를 살펴보겠다. 수집 스트림은 요소들을 필터링 또는 매핑한 후 요소들을 수집하는 최종 처리 메서드인 collect() 메서드를 제공하고 있다. 이 메서드를 사용하면 필요한 요소만 컬렉션으로 담을 수 있고, 요소들을 그룹핑한 후 집계할 수 있다. 필터링한 요소 수집 public class Student { private String name; private Gender gender; private int score; public Student(String name, Gender gender, int ..
-
Java - 스트림(Stream) 최종 처리 메서드의 종류와 사용 방법(1)Language/Java 2022. 12. 1. 11:20
스트림(Stream) 최종 처리 메서드의 종류와 사용 방법(1) 최종 처리 메서드의 종류 중간 처리 메서드의 리턴 타입은 스트림이었던 반면, 최종 처리 메서드는 기본 타입이거나 OptionalXXX이다. 또한, 소속된 인터페이스가 Stream, IntStream, LongStream, DoubleStream에서 모두 제공된다는 의미이다. 종류로는 매칭, 집계, 루핑, 수집이 있는데 이번 게시글에서는 루핑까지만 살펴보도록 하겠다. 매칭 매칭은 최종 처리 단계에서 요소들이 특정 조건에 만족하는지 조사할 수 있도록 설계한 것이다. 비슷한 역할로는 중간 처리 단계에서 필터링이 있다. 리턴 타입은 모두 boolean이고, 메서드의 종류로는 allMatch(), anyMatch(), noneMatch()가 있다. ..
-
Java - 스트림(Stream) 중간 처리 메서드의 종류와 사용 방법Language/Java 2022. 11. 30. 17:55
스트림(Stream) 중간 처리 메서드의 종류와 사용 방법 중간 처리 메서드의 종류 위 표는 중간 처리 메서드의 종류를 나타낸 것이다. 위와 같이 리턴 타입이 스트림이라면 중간 처리 메서드이다. 또한, 소속된 인터페이스가 공통이라는 의미는 Stream, IntStream, LongStream, DoubleStream에서 모두 제공된다는 뜻이다. 종류로는 필터링, 매핑, 정렬, 루핑이 있는데 하나씩 살펴보도록 하겠다. 필터링 필터링은 중간 처리 기능으로 요소를 걸러내는 역할을 한다. 필터링 메서드에는 distinct()와 filter()가 있다. 이들은 모든 스트림이 가지고 있는 공통 메서드이기도 하다. 1. distinct() distinct() 메서드는 중복을 제거하는데, Stream의 경우 Objec..
-
Java - 스트림(Stream) 파이프라인Language/Java 2022. 11. 30. 16:45
스트림(Stream) 파이프라인 스트림 파이프라인 스트림은 데이터의 필터링, 매핑, 정렬, 그룹핑 등의 중간 처리와 합계, 평균, 카운팅, 최댓값, 최솟값 등의 최종 파이프라인으로 해결한다. 여기서, 파이프라인은 컴퓨터 과학에서 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조를 말한다. 최종 처리 스트림과 오리지널 스트림을 제외한 나머지 스트림은 중간 처리 스트림으로 볼 수 있다. 위의 그림을 보면 알 수 있듯이, 이전 데이터 처리의 출력이 다음 단계의 입력으로 이어진다. 좀 더 구체적으로 말하자면, 스트림 인터페이스에는 필터링, 매핑, 정렬 등의 많은 중간 처리 메서드가 있는데, 이 메서드들은 중간 처리된 스트림을 반환한다. 그리고 이 스트림에서 다시 중간 처리 메서드를..
-
Java - 스트림(Stream)의 종류와 생성 방법Language/Java 2022. 11. 30. 15:37
스트림(Stream)의 종류와 생성 방법 스트림의 종류 java.util.stream 패키지에는 다양한 스트림 API들이 존재한다. 패키지 내용을 보면 BaseStream 인터페이스를 부모로 해서 자식 인터페이스들이 상속 관계를 이루고 있다. BaseStream 인터페이스에는 모든 스트림에서 사용할 수 있는 추상 메서드들이 존재할 뿐 코드에서 직접적으로 사용하지는 않는다. 코드에서 직접적으로 사용하는 것은 Stream, IntStream, LongStream, DoubleStream이 있다. 그리고 이 중에서 Stream만 객체 요소를 처리한다. 스트림을 생성하는 방법 1. 컬렉션으로부터 스트림 얻기 컬렉션으로는 주로 List가 사용되며, 내장된 메서드인 stream()을 사용한다. Stream stre..