>  기사  >  Java  >  목록을 사용하지 않고 Iterable을 Java 8 스트림으로 변환하려면 어떻게 해야 합니까?

목록을 사용하지 않고 Iterable을 Java 8 스트림으로 변환하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-19 03:55:03439검색

How Can I Convert an Iterable to a Java 8 Stream Without Using a List?

Java 8 JDK에서 Iterable을 Stream으로 변환

문제:

Java 8을 사용하여 Iterable을 어떻게 조작할 수 있습니까? API로 변환하지 않고 스트림 API 목록?

해결책:

tl;dr: StreamSupport.stream(iterable.spliterator(), false)을 사용하여 다음에서 스트림을 생성합니다. iterable.

상세 설명:

Iterable은 StreamSupport.stream을 사용하여 스트림을 생성하는 데 사용할 수 있는 Spliterator를 반환하는 Spliterator() 메서드를 제공합니다. 코드 조각은 다음과 같습니다.

StreamSupport.stream(iterable.spliterator(), false)
    .filter(...)
    .moreStreamOps(...);

이 접근 방식은 불필요한 목록 변환을 방지하여 성능과 메모리 소비를 향상시킬 수 있습니다. StreamSupport.stream은 두 가지 인수를 사용합니다.

  • iterable.spliterator(): Iterable에서 가져온 Spliterator.
  • false: iterable에 알려진 크기가 없음을 지정합니다.

결과 스트림은 필터, 맵, 등

이점:

StreamSupport.stream을 사용하면 다음과 같은 이점이 있습니다.

  • 편의성: 더 간단하고 수동으로 처리하는 것보다 오류 발생 가능성이 적습니다. 분할기.
  • 효율성: 특히 Iterable이 이미 컬렉션인 경우 더 나은 분할기 및 스트림 성능을 얻습니다.
  • 메모리 절약: 불필요한 것을 방지합니다. 목록으로 변환하여 메모리 오버헤드를 줄입니다.

위 내용은 목록을 사용하지 않고 Iterable을 Java 8 스트림으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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