Java에서 Iterable을 스트림으로 변환
Shubham Vora
2023년10월12일
Java에서는 Iterator
를 사용하여 모든 컬렉션 요소를 반복할 수 있습니다. 스트림은 컬렉션의 개체 파이프라인입니다.
두 가지 유형의 스트림이 있을 수 있습니다. 하나는 병렬이고 다른 하나는 순차 스트림입니다.
이 기사에서는 Iterable
을 Stream
으로 변환하는 방법을 배웁니다.
StreamSupport.stream()
메서드를 사용하여 Java에서 Iterable
을 Stream
으로 변환
iterable
인터페이스의 어떤 메서드도 iterable
을 stream
으로 직접 변환할 수 없습니다. 따라서 StreamSupport
클래스의 stream()
메서드를 사용해야 합니다.
사용자는 stream()
메서드를 사용하기 위해 아래 구문을 따를 수 있습니다.
Spliterator<T> spliter = iter.spliterator();
return StreamSupport.stream(spliter, isParallel);
매개변수:
spliter |
Iterable.spliterator() 메서드를 사용하여 변환한 반복자의 분할기 입니다. |
isParallel |
부울 값은 스트림이 병렬인지 순차인지를 정의합니다. 병렬 스트림을 얻으려면 사용자가 true 부울 값을 전달해야 합니다. |
아래 예제에서는 정수의 이터러블을 만들었습니다. IterToStream()
함수를 호출하고 특정 iterable의 스트림을 반환하는 인수로 iterable을 전달했습니다.
ItrToStream()
함수에서 iterable을 spliterator
로 변환합니다. 그런 다음 StreamSupport.stream()
메서드를 사용하여 분할기
를 스트림으로 변환했습니다.
마지막으로 스트림을 인쇄하고 있습니다.
import java.util.*;
import java.util.stream.*;
class Test {
// function to convert iterable to stream
public static <T> Stream<T> ItrToStream(Iterable<T> iter) {
// converting iterable to spliter
Spliterator<T> spliter = iter.spliterator();
// using the stream() method of StreamSupport class
return StreamSupport.stream(spliter, false);
}
public static void main(String[] args) {
// creating array list of Integers
Iterable<Integer> iterable = Arrays.asList(12121, 212123, 12213, 21212, 21212);
// calling the IterToStream Function
Stream<Integer> stream = ItrToStream(iterable);
// Print the element of the sequential stream.
stream.forEach(s -> System.out.println(s));
}
}
출력:
12121
212123
12213
21212
21212
우리는 StreamSupport.stream()
메서드를 사용하여 Java에서 iterable
을 stream
으로 변환하는 방법을 성공적으로 배웠습니다.
작가: Shubham Vora