Java 8의 Optional 및 Stream::FlatMap으로 간결해지기
Java 8 스트림으로 작업할 때 List
Java 16 솔루션
Java 16에서는 Stream.mapMulti를 도입하여 더 많은 기능을 지원합니다. 간결한 접근 방식:
<code class="java">Optional<Other> result = things.stream() .map(this::resolve) .<Other>mapMulti(Optional::ifPresent) .findFirst();</code>
Java 9 솔루션
JDK 9는 Optional.stream을 추가하여 작업을 단순화합니다.
<code class="java">Optional<Other> result = things.stream() .map(this::resolve) .flatMap(Optional::stream) .findFirst();</code>
Java 8 솔루션
Java 8에서는 다음 접근 방식을 사용할 수 있습니다.
<code class="java">Optional<Other> result = things.stream() .map(this::resolve) .flatMap(o -> o.isPresent() ? Stream.of(o.get()) : Stream.empty()) .findFirst();</code>
도우미 기능을 사용하여 Optional을 Stream으로 변환:
<code class="java">static <T> Stream<T> streamopt(Optional<T> opt) { if (opt.isPresent()) return Stream.of(opt.get()); else return Stream.empty(); } Optional<Other> result = things.stream() .flatMap(t -> streamopt(resolve(t))) .findFirst();</code>
위 내용은 Java 스트림에서 객체 목록을 선택 사항으로 효율적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!