JAVA

java 스트림이란? 사용법 및 예제

깨노비 2024. 1. 3. 01:16
728x90
반응형

Java 스트림 이해

Java 8에 도입된 Java Streams는 Java 프로그래밍 언어에 강력한 추가 기능입니다. 

스트림은 데이터 컬렉션에 대한 복잡한 데이터 처리 쿼리를 표현하는 명확하고 간결한 방법을 제공합니다. 

요소 시퀀스에 대해 기능적 스타일의 작업을 가능하게 하여 코드를 더욱 읽기 쉽고 표현력 있게 만듭니다.

Java 스트림이란 무엇입니까?

Java 스트림은 해당 요소에 대한 작업을 수행하는 다양한 방법을 지원하는 일련의 요소입니다. 

데이터를 저장하지 않습니다. 대신 작업 파이프라인을 통해 컬렉션과 같은 소스의 일련의 요소를 전달합니다.

스트림은 컬렉션, 배열, I/O 채널을 포함한 다양한 소스에서 생성될 수 있으며 심지어 즉시 요소를 생성할 수도 있습니다. 

스트림이 생성되면 일련의 작업을 적용하여 선언적이고 기능적인 방식으로 데이터를 변환, 필터링 및 조작할 수 있습니다.

Java 스트림은 어떻게 작동합니까?

Java Streams는 파이프라인 개념으로 작동합니다. 

파이프라인은 스트림에서 실행되는 일련의 작업입니다. 

작업에는 중간 작업과 터미널 작업이라는 두 가지 주요 유형이 있습니다.

중간 작업

중간 작업은 스트림의 요소를 다른 스트림으로 변환하는 작업입니다.

이는 Lazy 입니다. 즉, 터미널 작업이 호출될 때까지 실행되지 않습니다.

일반적인 중간 작업에는 다음이 포함됩니다.

filter, map, flatMap, distinct, sorted

Stream<String> filteredStream = stringList.stream().filter(s -> s.length() > 5);
Stream<Integer> lengthStream = stringList.stream().map(String::length);

터미널 작업

터미널 작업은 결과나 부작용을 생성하며 파이프라인의 요소 처리를 트리거합니다.

터미널 작업이 호출되면 스트림이 소비되고 결과가 얻어집니다.

일반적인 터미널 작업에는 다음이 포함됩니다.

forEach, toArray, reduce, collect, and count.

stringList.stream().forEach(System.out::println);
Optional<String> concatenated = stringList.stream().reduce((s1, s2) -> s1 + s2);
List<String> collectedList = stringList.stream().collect(Collectors.toList());

Java 스트림 사용의 이점

Java Streams는 다음과 같은 몇 가지 장점을 제공합니다.

  • 간결성 : 스트림을 사용하면 복잡한 작업을 간결하고 읽기 쉬운 방식으로 표현할 수 있습니다.
  • 병렬성 : 작업을 쉽게 병렬화하여 멀티 코어 프로세서를 활용할 수 있습니다.
  • 선언적 구문 : 스트림 작업은 선언적 구문을 사용하여 코드의 표현력을 높이고 오류 가능성을 줄입니다.
  • 재사용성 : 스트림 작업을 구성하고 재사용할 수 있어 모듈식이며 유지 관리 가능한 코드가 촉진됩니다.

결론

Java Streams는 컬렉션 작업에 대한 현대적이고 기능적인 접근 방식을 제공합니다. 

파이프라인, 중간 및 터미널 작업의 개념을 이해하면 개발자는 깔끔하고 효율적이며 표현력이 풍부한 코드를 작성할 수 있습니다. 

Java Streams를 수용하면 코드를 더 유지 관리하고 병렬화할 수 있으므로 최신 Java 개발에 유용한 기능이 됩니다.

728x90
반응형

'JAVA' 카테고리의 다른 글

java 스트림 사용법 및 예제(최종 연산)  (2) 2024.01.03
java 스트림 사용법 및 예제(중간 연산)  (0) 2024.01.03
java 연산자 정리  (0) 2024.01.01
java 변수 타입 정리  (1) 2024.01.01
JAVA 데이터 타입 정리  (0) 2024.01.01