앞서 스트림과 스트림의 연산에 대해 알아봤다.
데이터를 최종 추출하는 스트림 최종연산의 종류에 대해 알아보자.
https://standout.tistory.com/1445
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]
'JAVA' 카테고리의 다른 글
스트림 임의의 수 만들기 ints() longs() doubles() (0) | 2024.03.05 |
---|---|
스트림 특정범위의 정수만들기 range() rangeClosed() (0) | 2024.03.05 |
스트림의 연산 - 중간연산 distinct, filter, limit, skip, peek sorted map mapToDouble mapToInt mapToLong flatMap flatmapToDouble flatToInt flatToLong (0) | 2024.03.05 |
스트림의연산, 중간 연산과 최종연산 (0) | 2024.03.05 |
메서드 참조, 람다식을 더욱 간략히 (0) | 2024.03.05 |