Java 8에서 새로 추가된 스트림(Stream) 기능은 컬렉션을 더욱 효율적이고 간편하게 다룰 수 있게 해줍니다.
스트림은 데이터 처리 방식을 명시적으로 표현할 수 있게 해주어 코드 이해도를 높이고 병렬 처리를 더욱 쉽게 할 수 있습니다.
스트림(Stream)이란?
스트림은 데이터를 처리하는데 사용되는 연속적인 데이터 요소의 시퀀스입니다.
각 요소는 한 번에 하나씩만 처리되며, 이는 배열이나 컬렉션과 같은 데이터 소스에서 생성될 수 있습니다.
스트림은 중간 연산과 최종 연산으로 구성되어 있으며, 이를 통해 데이터를 변환하고 결과를 도출할 수 있습니다.
기본적인 스트림 예제
아래는 간단한 리스트를 이용한 스트림의 예제 코드입니다.
import java.util.Arrays;
import java.util.List;
public class StreamMagicExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Magic", "John", "Jane", "Doe", "Mary", "Smith");
// 중간 연산: 길이가 4 이상인 이름만 필터링
names.stream()
.filter(name -> name.length() >= 4)
// 중간 연산: 이름을 대문자로 변환
.map(String::toUpperCase)
// 최종 연산: 결과 출력
.forEach(System.out::println);
}
}
위 코드에 대해서 간단하게 설명해 보자면 아래와 같습니다.
"filter" 는 중간 연산으로 조건에 맞는 요소만 걸러냅니다.
"map" 은 중간 연산으로 각 요소를 변환합니다.
"forEach"는 최종 연산으로 최종 결과를 출력합니다.
병렬스트림 활용
스트림은 병렬 처리를 간단하게 할 수 있는 기능을 제공합니다. 아래는 병렬 스트림을 이용한 예제 코드입니다.
import java.util.Arrays;
import java.util.List;
public class ParallelStreamMagicExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Magic", "John", "Jane", "Doe", "Mary", "Smith");
// 병렬 스트림을 이용한 처리
names.parallelStream()
.filter(name -> name.length() >= 4)
.map(String::toUpperCase)
.forEach(System.out::println);
}
}
위의 코드에서 parallelStream을 사용하여 간단하게 병렬 처리를 수행할 수 있습니다.
참고로 스트림은 데이터 처리를 보다 선언적이고 간결한 방식으로 수행할 수 있도록 도와주며,
병렬 처리를 통해 성능을 향상시킬 수 있는 강력한 기능을 제공한다고 보시면 됩니다.
이상으로 Java 스트림에 대한 간략한 소개와 예제를 살펴보았습니다.
더 많은 예제와 프로그래밍으로 스트림 기능과 활용법을 학습하면서 코드 작성의 효율성을 높이는 방향으로 개발하시길 기원합니다.
오늘의 티스토리는 여기까지고요.
항상 믿고 봐주셔서 감사합니다.
'좋아하는 것_매직IT > 26.Java' 카테고리의 다른 글
람다식(Lambda expression) 깔끔하게 정리하기 (0) | 2023.12.27 |
---|---|
openjdk 최신버전 다운로드 받기 (0) | 2023.04.05 |
ChatGPT 연동 JAVA로 구현해보기 (ft.python, nodejs) (3) | 2023.02.14 |
HttpServer를 활용한 간단한 Mock 서버 구축하기 (0) | 2022.09.13 |
면접때 꼭 물어보는 JAVA(JVM) 주요 메모리 영역 깔끔하게 정리하기 (0) | 2022.06.05 |