Hello

Java 스트림의 최종연산

by 볼빵빵오춘기
더보기

※ 스트림의 연산

  • 중간 연산 : n번
    → limit(), skip(), filter(), distinct(), map(), peek() 등
    ⇒ 스트림을 반환
  • 최종 연산 : 1번
    → forEach(), allMatch(), anyMatch(), notMatch(), reduce(), collect() findFirst(), findAny()
    ⇒ 스트림 요소를 소모하기 때문에 스트림이 닫혀 1번만 가능. int, boolean, Optional을 반환

 

스트림의 최종연산 - forEach()

  • 스트림의 모든 요소를 지정된 작업을 수행 - forEach(), forEachOrdered()
  • 조건 검사 - allMath(), anyMatch(), noneMatch()
  • 조건에 일치하는 요소 찾기 - findFirst(), findAny()

 

스트림의 최종연산 - reduce()

스트림의 요소를 하나씩 줄여가며 누적연산 수행

예제 코드

더보기
import java.util.*;
import java.util.stream.*;

class Ex14_9 {
	public static void main(String[] args) {
		String[] strArr = {
			"Inheritance", "Java", "Lambda", "stream",
			"OptionalDouble", "IntStream", "count", "sum"
		};

		Stream.of(strArr).forEach(System.out::println);

		boolean noEmptyStr = Stream.of(strArr).noneMatch(s->s.length()==0);
		Optional<String> sWord = Stream.of(strArr)
					               .filter(s->s.charAt(0)=='s').findFirst();

		System.out.println("noEmptyStr="+noEmptyStr);
		System.out.println("sWord="+ sWord.get());

		// Stream<String>À» IntStreamÀ¸·Î º¯È¯
		IntStream intStream1 = Stream.of(strArr).mapToInt(String::length);
		IntStream intStream2 = Stream.of(strArr).mapToInt(String::length);
		IntStream intStream3 = Stream.of(strArr).mapToInt(String::length);
		IntStream intStream4 = Stream.of(strArr).mapToInt(String::length);

		int count = intStream1.reduce(0, (a,b) -> a + 1);
		int sum   = intStream2.reduce(0, (a,b) -> a + b);

		OptionalInt max = intStream3.reduce(Integer::max);
		OptionalInt min = intStream4.reduce(Integer::min);
		System.out.println("count="+count);
		System.out.println("sum="+sum);
		System.out.println("max="+ max.getAsInt());
		System.out.println("min="+ min.getAsInt());
	}
}

'👩🏻‍💻 About 프로그래밍 > Java' 카테고리의 다른 글

Java 스트림의 그룹화와 분할  (0) 2023.12.11
Java collect()와 Collectors  (0) 2023.12.11
Java 스트림의 중간연산2  (0) 2023.12.11
Java 스트림의 중간연산  (0) 2023.12.11
Java 스트림의 연산  (0) 2023.12.11

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기