Java 8에 도입된 Java Streams는 일련의 요소에 대해 함수형 작업을 허용합니다. 이는 보다 선언적이고 읽기 쉬운 방식으로 데이터 컬렉션을 처리하는 강력한 방법을 제공합니다.
터미널 연산자는 스트림 파이프라인의 끝을 표시하는 작업입니다. 스트림 내에서 데이터 처리를 트리거하고 결과나 부작용을 생성합니다. 터미널 운영자가 호출되면 스트림이 소비된 것으로 간주되어 더 이상 작업을 수행할 수 없습니다.
터미널 운영자의 일반적인 예:
예제 코드:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class TerminalOperatorExample { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie"); // Terminal operator: forEach names.stream().forEach(name -> System.out.println("Name: " + name)); // Terminal operator: collect List<String> filteredNames = names.stream() .filter(name -> name.startsWith("A")) .collect(Collectors.toList()); System.out.println("Filtered Names: " + filteredNames); } }
데모 결과:
Name: Alice Name: Bob Name: Charlie Filtered Names: [Alice]
중간 연산자는 스트림을 다른 스트림으로 변환하는 작업입니다. 터미널 운영자가 호출될 때까지 어떠한 처리도 트리거하지 않습니다. 이러한 연산자는 효율적인 데이터 처리 및 조작을 가능하게 하는 작업 파이프라인을 구축하는 데 사용됩니다.
중간 연산자의 일반적인 예:
예제 코드:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class IntermediateOperatorExample { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Alice"); // Intermediate operators: filter and map List<String> transformedNames = names.stream() .filter(name -> name.startsWith("A")) .map(String::toUpperCase) .distinct() .collect(Collectors.toList()); System.out.println("Transformed Names: " + transformedNames); } }
데모 결과:
Transformed Names: [ALICE]
효과적인 스트림 처리를 위해서는 이러한 연산자 간의 차이점을 이해하는 것이 중요합니다.
Java Streams의 터미널 및 중간 연산자를 이해하는 것은 효율적이고 읽기 쉬운 코드를 작성하는 데 중요합니다. 터미널 운영자는 스트림 처리 파이프라인을 완성하고 중간 운영자는 파이프라인을 구축하고 변환합니다. 이러한 연산자를 효과적으로 활용하면 보다 선언적이고 기능적인 방식으로 데이터 처리 작업을 처리할 수 있습니다.
질문이 있거나 추가 설명이 필요한 경우 아래에 댓글을 남겨주세요!
에서 자세한 게시물 읽기: Java 스트림의 터미널 연산자와 중간 연산자 이해: 주요 차이점 및 예
위 내용은 Java 스트림의 터미널 연산자와 중간 연산자 이해: 주요 차이점 및 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!