stream2 순차적 스트림과 병렬 스트림 우선 자바의 스트림은원본데이터를 변경하지 않는다는불변성 특징을 갖고 있어 데이터 소스 변경 없이 파이프라인 방식으로 함수형 처리를 제공하는 API임. 따로 병렬스트림으로 지정하지 않으면 기본적으로 단일 스레드로 파이프라인을 처리하는 순차 스트림(sequential stream)으로 동작함.List listOfNumbers = Arrays.asList(1, 2, 3, 4);listOfNumbers.stream().forEach(number -> System.out.println(number + " " + Thread.currentThread().getName())); 순차 스트림의 결과는 항상 예측 가능 함.리스트의 element는 항상 순서대로 출력됨.1 main2 main3 main4 main .. 2025. 5. 12. 람다식과 스트림 1. 자바 8 함수형 프로그래밍 도입 배경CPU가 단일코어에서 멀티코어로 전환되며 병렬처리가 중요해졌음. 병렬처리를 위해 불변성과 순수함수가 요구됨.javaScript, python, kotlin 등의 언어가 이미 함수형 스타일을 채택하고 있었고 자바 또한 뒤처지지 않기 위해 함수형 프로그래밍을 일부 도입하게 됨. 불변성 - 데이터가 한번 생성되면 변경되지 않음.함수형 프로그래밍은 데이터를 수정하지 않고 새로운 값을 만들어냄. 이 결과 부작용이 없고 병렬처리, 테스트가 쉬움. 순수함수 - 같은 입력에 대해 항상 같은 출력을 하며 부작용(side effect)이 없음.함수형 프로그래밍은 순수함수만을 사용하려 하여 코드의 예측 가능성과 테스트 용이성이 크게 향상됨 객체지향과 함수형은 배타적 관계가 아닌 상호.. 2025. 5. 7. 이전 1 다음 반응형