Stream

    Java Stream(스트림)은 원본 데이터를 변경할 수 있다!?

    나의 의문점을 말하기전에, 스트림이 무엇인지 간단하게 살펴보자. 1. 스트림(Stream) 이란? Java 8부터 도입된 데이터 처리 기능 데이터 소스에서 데이터를 추상화하여 처리할 수 있도록 도와줌 컬렉션, 배열, 파일 등의 데이터 소스에서 데이터를 읽고, 중간 처리 및 최종 처리하여 원하는 결과를 만듦 스트림은 기존 데이터 소스의 요소를 가져와 중간 처리 연산을 수행하고 새로운 Stream으로 반환함 중간 처리 연산은 lazy evaluation 방식으로 동작하기에 최종 처리 연산이 호출될 때만 수행됨 즉, 중간 처리 연산을 호출해도 즉각적인 연산이 되지 않음 최종 연산이 수행되어야 스트림의 요소들이 중간 처리 연산을 거쳐 최종 연산에서 소모됨 함수형 프로그래밍 개념을 적용하여 작성했기에 가독성과 유..