Java 스트림 Elements를 리스트로 수집
1. 스트림 요소를 리스트로 수집 스트림에서 리스트를 가져오는 것은 스트림 파이프라인에서 가장 많이 사용되는 터미널 작업 이다. Java 16 이전에는 Stream.collect() 메서드를 호출하고 이를 수집기에 인수로 전달하여 요소를 수집했다. Collector 자체는 Collectors.toList() 메서드를 호출하여 생성되었다. 그러나 St...
1. 스트림 요소를 리스트로 수집 스트림에서 리스트를 가져오는 것은 스트림 파이프라인에서 가장 많이 사용되는 터미널 작업 이다. Java 16 이전에는 Stream.collect() 메서드를 호출하고 이를 수집기에 인수로 전달하여 요소를 수집했다. Collector 자체는 Collectors.toList() 메서드를 호출하여 생성되었다. 그러나 St...
1. Skip() 메소드 Skip(n) 메서드는 스트림의 처음 n개 요소를 삭제하는 중간 작업 이다. n 매개 변수는 음수일 수 없으며 스트림 크기보다 큰 경우 Skip()은 빈 스트림을 반환한다. 예이다. Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) .filter(i -> i % 2 == 0) .s...
1. Java의 스트림 Java의 스트림은 데이터 소스를 둘러싼 단순한 래퍼이므로 편리한 방법으로 데이터에 대한 대량 작업을 수행할 수 있다. 데이터를 저장하지 않으며 기본 데이터 소스를 변경하지 않는다. 오히려 데이터 파이프라인에서 기능적 스타일 작업에 대한 지원을 추가한다. 1) 순차 스트림 기본적으로 Java의 모든 스트림 작업은 명시적으로 ...
1. Project Structure 이동 File → Project Structure 2. Dependencies 확인 3. Libraries 확인 4. Artifacts 추가 JAR → From modules with dependencies 5. Create JAR from Modules Ma...
1. gRPC란 gRPC는 Google이 처음 개발한 고성능 오픈소스 RPC 프레임워크이다. 이는 상용구 코드를 제거하고 데이터 센터 내에서 다중 언어 서비스를 연결하는데 도움이 된다. 2. 개요 프레임워크는 원격 프로시저 호출의 클라이언트-서버 모델을 기반으로 한다. 클라이언트 애플리케이션은 마치 로컬 객체인 것처럼 서버 애플리케이션의 메서드를 직...
1. Identity, Accumulator 그리고 Combiner Identity - 축소 작업의 초기 값이자 스트림이 비어 있는 경우 기본 결과인 요소이다. Accumulator - 축소 작업의 부분 결과와 스트림의 다음 요소라는 두 가지 매개변수를 취하는 함수이다. Combiner - 축소가 ...
1. 기본 아이디어 Stream은 Collection에서 쉽게 얻을 수 있는 요소의 시퀀스라는 것이다. 맵은 순서 없이 key에서 value로 매핑되는 다른 구조를 갖는다. 그러나 이것이 맵 구조를 다른 시퀀스로 변환하여 Stream API를 사용하여 자연스러운 방식으로 작업할 수 있다는 의미는 아니다. 맵에서 다양한 Collection을 얻는 방...
1. 간단한 예 이름 스트림이 있고 이를 콘솔에 인쇄하려고 한다. peek()는 Consumer<T>를 유일한 인수로 기대하므로 적합해 보인다. Stream<String> nameStream = Stream.of("Alice", "Bob", "Chuck"); nameStream.peek(System.out::println); ...
1. Stream.reduce() 사용 Stream.reduce()는 stream의 요소를 축소하는 터미널 작업이다. 스트림의 각 요소에 이진 연산자(누산기)를 적용한다. 여기서 첫 번째 피연산자는 이전 애플리케이션의 반환 값이고 두 번째 피연산자는 현재 스트림 요소이다. Reduce() 메서드를 사용하는 첫 번째 방법에서 Accumulator 함...
1. Stream.filter() 사용 filter() 메소드는 주어진 Predicate와 일치하는 스트림 요소를 필터링할 수 있는 Stream 인터페이스의 중간 작업이다. Stream<T> filter(Predicate<? super T> predicate) 이것이 어떻게 작동하는지 확인하기 위해 Customer 클래스를 ...