Java에서 Iterable을 스트림으로 변환

Shubham Vora 2023년10월12일
Java에서 Iterable을 스트림으로 변환

Java에서는 Iterator를 사용하여 모든 컬렉션 요소를 반복할 수 있습니다. 스트림은 컬렉션의 개체 파이프라인입니다.

두 가지 유형의 스트림이 있을 수 있습니다. 하나는 병렬이고 다른 하나는 순차 스트림입니다.

이 기사에서는 IterableStream으로 변환하는 방법을 배웁니다.

StreamSupport.stream() 메서드를 사용하여 Java에서 IterableStream으로 변환

iterable 인터페이스의 어떤 메서드도 iterablestream으로 직접 변환할 수 없습니다. 따라서 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에서 iterablestream으로 변환하는 방법을 성공적으로 배웠습니다.

작가: Shubham Vora
Shubham Vora avatar Shubham Vora avatar

Shubham is a software developer interested in learning and writing about various technologies. He loves to help people by sharing vast knowledge about modern technologies via different platforms such as the DelftStack.com website.

LinkedIn GitHub

관련 문장 - Java Stream