>  기사  >  Java  >  Java에서 반복자를 스트림으로 어떻게 변환합니까?

Java에서 반복자를 스트림으로 어떻게 변환합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-06 18:02:02818검색

How do you convert an iterator to a stream in Java?

반복자를 스트림으로 변환

Java 프로그래밍에서 반복자를 스트림으로 변환하면 컬렉션의 요소에 순차적으로 액세스할 수 있습니다. . 이는 필터링 또는 축소와 같이 요소에 대해 단일 전달만 필요한 작업에 유용할 수 있습니다.

반복기를 스트림으로 변환하려면 StreamSupport 클래스와 해당 stream() 메서드를 활용할 수 있습니다. 이 메서드는 반복자의 기본 구조를 나타내는 Spliterator를 입력으로 사용합니다. Spliterators.spliteratorUnknownSize() 메서드를 사용하여 반복자에서 Spliterator를 얻을 수 있습니다. 예는 다음과 같습니다.

Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator();
Stream<String> targetStream = StreamSupport.stream(
        Spliterators.spliteratorUnknownSize(sourceIterator, Spliterator.ORDERED),
        false);

반복자를 스트림으로 변환하는 또 다른 접근 방식은 람다 식을 사용하여 반복 가능 항목을 만드는 것입니다. Iterable 인터페이스는 기능적입니다. 즉, 단일 메소드로 구현을 정의할 수 있습니다. 이를 달성할 수 있는 방법은 다음과 같습니다.

Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator();

Iterable<String> iterable = () -> sourceIterator;
Stream<String> targetStream = StreamSupport.stream(iterable.spliterator(), false);

이 기술은 특히 복잡한 반복기로 작업할 때 향상된 가독성을 제공합니다.

Stream.generate()를 사용하여 반복기를 스트림으로 변환하려고 할 때 메서드에서 반복자에 대해 hasNext()를 호출하지 않으면 NoSuchElementException이 발생할 수 있습니다. 이는 hasNext()가 반복자가 제공할 요소를 더 많이 갖도록 보장하기 때문입니다.

위 내용은 Java에서 반복자를 스트림으로 어떻게 변환합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.