Language

·Language/Java
Stream의 객체를 구성하고자 할 때 "Stream 생성 → 중간 연산→ 최종 연산"의 세 단계의 과정을 통해서 Stream의 구성이 이루어집니다.  이번 포스팅에서는 Stream의 요소를 다른 형태로 수집하는 최종 연산인 collect에 대해 알아보겠습니다. collect❓Stream의 최종 연산자 중 가장 복잡하지만, 가장 유용하게 사용할 수 있는 것이 바로 collect()입니다. collect()는 일반적으로 List, Set, Map 등의 Collection으로 수집하거나, 요소를 결합하여 단일 결과를 생성할 때 사용됩니다.collect 메서드의 시그니처 R collect(Collector collector); R : 결과 타입 (저장될 컬렉션)A : 중간 누적(accumulator)T : 스..
·Language/Java
Optional 클래스가 등장하기 전에는 Java에서는 null 처리가 항상 문제였습니다. null을 마주하는 경우 프로그램 실행 중에 NullPointerException(NPE)로 인해 프로그램이 죽는 경우가 자주 있습니다.NullPointerException(NPE) 란❓Java에서 가장 흔한 런타임 오류 중 하나로, null 참조를 가진 객체의 메서드나 필드에 접근하려고 할 때 발생합니다. NPE가 발생하는 간단한 for문은 다음과 같습니다.public class ForLoopNPEExample { public static void main(String[] args) { String[] array = null; for (String element : array) { ..
·Language/Java
Stream의 객체를 구성하고자 할 때 "Stream 생성 → 중간 연산→ 최종 연산"의 세 단계의 과정을 통해서 Stream의 구성이 이루어집니다.  이번 포스팅에서는 Stream 생성 후 생성된 스트림을 필터링하거나 원하는 형태에 알맞게 가공하는 연산을 하는 과정인  Stream 중간 연산을 통해 변환된 Stream의 각 요소를 소모하여 결과 Stream을 생성하는 최종 연산에 대해 알아보겠습니다. Stream 최종 연산이란❓Stream 최종 연산은 지연 평가(Lasy Evaluation)되었던 중개 연산들이 최종 연산에 모두 수행됩니다. 최종연산을 하고 나면 해당 Stream은 닫히게 되고 다시 사용할 수 없습니다. 즉 재사용 불가. Stream API에서 사용할 수 있는 대표적인 최종연산 메서드는..
·Language/Java
Stream의 객체를 구성하고자 할 때 "Stream 생성 → 중간 연산→ 최종 연산"의 세 단계의 과정을 통해서 Stream의 구성이 이루어집니다.  이번 포스팅에서는 Stream 생성 후 생성된 스트림을 필터링하거나 원하는 형태에 알맞게 가공하는 연산을 하는 과정인  Stream 중간 연산에 대해 알아보겠습니다. Stream 중간 연산(가공)이란❓Stream 중간 연산은 Stream 생성으로 만들어진 데이터 집합을 원하는 형태로 가공하는 것으로 중간 처리를 의미합니다. 중간 연산의 입력값과 반환 값은 "Stream"입니다. 따라서 여러번 사용할 수 있는 메서드 체이닝이 가능합니다. 지연 평가(Lasy Evaluation) 중간 연산은 Stream을 다른 Stream으로 변환하거나 필터링하는 "중간" ..