본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA

스트림의 연산 - 최종연산 forEach forEachOrdered count max min findANy findFirst allMatch anyMatch noneMatch toArray reduce collect

앞서 스트림과 스트림의 연산에 대해 알아봤다.

데이터를 최종 추출하는 스트림 최종연산의 종류에 대해 알아보자.

https://standout.tistory.com/1445

 

스트림의연산, 중간 연산과 최종연산

스트림 데이터의 흐름 스트림은 자바에서 데이터 컬렉션을 처리하는 데 사용되는 개념 중간 연산과 최종 연산을 통해 데이터를 처리 https://standout.tistory.com/106 스트림이란? Stream 개울, 흘러가는

standout.tistory.com

 

 

 

forEach
각 요소를 소비하면서 작업을 수행하는 최종 연산

import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        // 1부터 5까지의 정수를 출력
        Stream.of(1, 2, 3, 4, 5)
              .forEach(System.out::println);
    }
}


[출력결과]
1
2
3
4
5

 

 

 

 

forEachOrdered
각 요소를 소비하면서 순서대로 작업을 수행하는 최종 연산

import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        // 1부터 5까지의 정수를 출력
        Stream.of(1, 2, 3, 4, 5)
              .parallel()
              .forEachOrdered(System.out::println);
    }
}


[출력결과]
1
2
3
4
5

 

 

 

 

count
스트림의 요소 개수를 반환하는 최종 연산

import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        long count = Stream.of("apple", "banana", "cherry", "date")
                           .count();

        System.out.println("Count: " + count);
    }
}


[출력결과]
Count: 4

 

 

 

 

max
스트림의 최댓값을 반환하는 최종 연산

import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        // 길이가 가장 긴 문자열을 찾아 출력
        String longest = Stream.of("apple", "banana", "cherry", "date")
                               .max(String::compareTo)
                               .orElse("");

        System.out.println("Longest: " + longest);
    }
}


[출력결과]
Longest: cherry

 

 

 

min
스트림의 최솟값을 반환하는 최종 연산

import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        // 길이가 가장 짧은 문자열을 찾아 출력
        String shortest = Stream.of("apple", "banana", "cherry", "date")
                                .min(String::compareTo)
                                .orElse("");

        System.out.println("Shortest: " + shortest);
    }
}


[출력결과]
Shortest: apple

 

 

 


findAny
스트림에서 임의의 요소를 반환하는 최종 연산

import java.util.Optional;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        Optional<String> result = Stream.of("apple", "banana", "cherry", "date")
                                        .findAny();

        System.out.println("Result: " + result.orElse("No result found"));
    }
}

[출력결과]
(출력은 실행할 때마다 다를 수 있음)
Result: banana

 

 

 

 


findFirst
스트림의 첫 번째 요소를 반환하는 최종 연산


import java.util.Optional;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        Optional<String> result = Stream.of("apple", "banana", "cherry", "date")
                                        .findFirst();

        System.out.println("Result: " + result.orElse("No result found"));
    }
}
[출력결과]
Result: apple

 

 

 

 

allMatch
모든 요소가 주어진 조건을 만족하는지 여부를 반환하는 최종 연산

import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        boolean allMatch = Stream.of(2, 4, 6, 8, 10)
                                 .allMatch(n -> n % 2 == 0);

        System.out.println("All elements are even: " + allMatch);
    }
}


[출력결과]
All elements are even: true

 

 

 

anyMatch
스트림의 요소 중에서 하나라도 주어진 조건을 만족하는지 여부를 반환하는 최종 연산

import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        boolean anyMatch = Stream.of(1, 2, 3, 4, 5)
                                 .anyMatch(n -> n % 2 == 0);

        System.out.println("Any element is even: " + anyMatch);
    }
}


[출력결과]
Any element is even: true

 

 

 

 

 noneMatch
스트림의 모든 요소가 주어진 조건을 만족하지 않는지 여부를 반환하는 최종 연산

import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        boolean noneMatch = Stream.of(1, 3, 5, 7, 9)
                                  .noneMatch(n -> n % 2 == 0);

        System.out.println("No element is even: " + noneMatch);
    }
}


[출력결과]
No element is even: true

 

 

 

 

 toArray
스트림의 요소를 배열로 변환하는 최종 연산

import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        Object[] array = Stream.of("apple", "banana", "cherry", "date")
                               .toArray();

        // 배열 요소를 출력
        for (Object element : array) {
            System.out.println(element);
        }
    }
}


[출력결과]
apple
banana
cherry
date

 

 

 

 

reduce
스트림의 모든 요소를 결합하여 단일 결과를 생성하는 최종 연산

import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        // 1부터 5까지의 정수를 모두 더한 결과 출력
        int sum = Stream.of(1, 2, 3, 4, 5)
                        .reduce(0, Integer::sum);

        System.out.println("Sum: " + sum);
    }
}


[출력결과]
Sum: 15

 

 

 


 collect
스트림의 요소를 컬렉션으로 수집하는 최종 연산

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        // 문자열 길이가 5 이상인 요소를 리스트로 수집하여 출력
        List<String> result = Stream.of("apple", "banana", "cherry", "date")
                                    .filter(s -> s.length() >= 5)
                                    .collect(Collectors.toList());

        System.out.println("Result: " + result);
    }
}


[출력결과]
Result: [banana, cherry]