-
[JAVA] Stream API란?java 2024. 8. 8. 13:27
- Java Stream API는 일련의 데이터의 흐름을 표준화된 방법으로 쉽게 처리할 수 있도록 지원하는 패키지입니다.
- Java Stream API를 이용하면 일련의 데이터를 함수형 연산을 통해 표준화된 방법으로 쉽게 가공, 처리할 수 있습니다.
- Java Stream API는 대량의 데이터를 표준화된 방식으로 처리하기 위한 용도로 만들어졌습니다.
Java Stream API 장점
1. 가독성 & 유지보수성 향상
List 사용
List<String> names = Arrays.asList("James", "Kevin", "Jayden", "David", "Alice", "Jackson"); List<String> filteredNames = new ArrayList<>(); for (String name : names) { // 이름 중에 J로 시작하고 5자 보다 많은 이름 찾기 if (name.startsWith("J") && name.length() > 5) { filteredNames.add(name); } } Collections.sort(filteredNames); for (String filteredName : filteredNames) { System.out.println(filteredName); }
Stream 사용
// 이름 중에 J로 시작하고 5자 보다 많은 이름 찾기 names.stream() .filter(name -> name.startsWith("J") && name.length() > 5) .sorted() .forEach(System.out::println);
- 위의 코드 예제들 처럼 Stream API를 사용하면 List를 이용할때와 다르게, 반복문, 조건문 필요없이 Stream의 사용으로 복잡하고 가독성 떨어지는 코드를 간결하게 만들 수 있습니다.
2. 병렬처리 지원
- Stream에서는 데이터의 흐름을 나누어서 멀티 스레드로 병렬로 처리하고 처리후 합치는 과정을 거치기 때문에, 대량의 데이터를 보다 더 빠르고 효율적으로 처리할 수 있다는 장점이 있습니다. 병렬처리, 즉 여러개의 작업을 동시에 실행하기 때문에 대량의 데이터를 관리해야할 경우 더욱더 효율적입니다. 반대로, 소량의 데이터에 이용하게 될 경우 역으로 비효율적일 수 있기 때문에 유의하여 사용하는것이 좋습니다.
- Stream에서 parallel() 혹은 parallelStream()을 이용하여 간편하게 병렬처리를 구현 할 수 있습니다.
Stream Api 사용법
// stream filter (특정 조건에 맞는 값만 가져오기) Stream<String> filteredNames = names.stream().filter(name -> name.length() > 6 && name.startsWith("A")); // stream map (값 변환하기) Stream<String> mappedNames = names.stream().map(name -> "Mr/Mrs." + name); // stream sort (정렬하기) Stream<String> sortedNames = names.stream().sorted(); // stream distinct (중복값 없애기) Stream<String> distinctNames = names.stream().distinct(); // stream limit (limit 만큼의 데이터만 가져오기) Stream<String> limitedNames = names.stream().limit(5);
출처
'java' 카테고리의 다른 글
클래스, 객체, 인스턴스 차이 JAVA (0) 2023.03.01 java 스트림 (0) 2023.01.17 자바 Static과Heap (0) 2023.01.15