전체 글
-
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..
-
Java - 스트림(Stream)의 기본 개념과 특징Language/Java 2022. 11. 30. 15:01
스트림(Stream)의 기본 개념과 특징 스트림이란? 스트림의 사적적 의미는 "흐르다." 또는 "개울"이다. 프로그래밍에서의 스트림도 사전적 의미와 크게 다르지 않다. 다만, 여기서는 물이 흐르는 것이 아닌 "데이터의 흐름"을 말한다. 위 그림은 어부가 물고기를 그물로 잡고, 여러 마리를 일정한 기준으로 모아서 상자에 넣고, 이들을 하나로 모은 뒤 트럭에 실어서 운반하는 과정을 나타내고 있다. 스트림도 이와 별반 다르지 않다. 물고기와 같은 어류의 이동을 스트림이라고 정의할 수 있다. 먼저, 어부가 어류 중에서도 고등어를 잡고 싶어서 그물로 고등어를 잡았다고 가정해 보겠다. 이러한 행위를 filter라고 하고, 이 연산자를 중간 연산자라고 한다. 그리고 고등어를 포장하지 않고 생으로 팔 수는 없기 때문에..