Java에서 Iterable을 스트림으로 변환
Shubham Vora
2023년10월12일
Java
Java Iterable
Java Stream
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으로 변환하는 방법을 성공적으로 배웠습니다.
튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
작가: Shubham Vora
