簡體   English   中英

Java,Streams:如何使用.collect(Collectors.toList())轉換表達式

[英]Java, Streams: how to convert expression with.collect(Collectors.toList())

我該如何轉換

List<Integer> list = new ArrayList<>();
IntStream.range(0, 10).forEach(i -> IntStream.range(0, i + 1).forEach(j -> list.add(Math.max(i, j))));

變成單行表達式

List<Integer> list = IntStream.range(0, 10) ... .collect(Collectors.toList());

使用flatMap

IntStream.range(0, 10)
         .flatMap(i -> IntStream.range(0, i + 1).map(j -> Math.max(i, j)))
         .boxed()
         .collect(Collectors.toList());

另外,您在這里不需要Math.max 在這種情況下, i總是不小於j ,因此可以更簡單地生成相同的結果:

IntStream.range(0, 10)
    .flatMap(i -> IntStream.range(0, i + 1).map(j -> i))
    .boxed()
    .collect(Collectors.toList());

您可以使用flatMap實現此目的:

List<Integer> list =
    IntStream.range(0,10)
             .flatMap(i -> IntStream.range(0, i + 1)
                                    .map(j->Math.max(i,j)))
             .boxed()
             .collect(Collectors.toList());

編輯:剛剛測試了我的代碼。 似乎mapToObj無法正常工作,因此您必須使用map並在以后將流mapToObj

如何轉換 ArrayList<string> 至 ArrayList<object> using.collect(Collectors.toList() 在 Java stream<div id="text_translate"><p> 如何在 Java stream 中使用.collect(Collectors.toList()將ArrayList&lt;String&gt;轉換為ArrayList&lt;Object&gt;</p><p> 之前我用過</p><pre>CommonList = detailUtils.SelectIDValueGetterObservable(getActivity()).stream().forEach(i -&gt; CommonList.add(new foo(i));`</pre><p> 但是我遇到了這些<strong>副作用</strong></p><p> <a href="https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html" rel="nofollow noreferrer">https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html</a></p><p> 這建議.collect(Collectors.toList()</p><p> 我們該怎么做</p></div></object></string>

[英]How can I convert ArrayList<String> to ArrayList<Object> using .collect(Collectors.toList() in Java stream

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 .collect(Collectors.toList())和Java方法上的Streams 如何轉換 ArrayList<string> 至 ArrayList<object> using.collect(Collectors.toList() 在 Java stream<div id="text_translate"><p> 如何在 Java stream 中使用.collect(Collectors.toList()將ArrayList&lt;String&gt;轉換為ArrayList&lt;Object&gt;</p><p> 之前我用過</p><pre>CommonList = detailUtils.SelectIDValueGetterObservable(getActivity()).stream().forEach(i -&gt; CommonList.add(new foo(i));`</pre><p> 但是我遇到了這些<strong>副作用</strong></p><p> <a href="https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html" rel="nofollow noreferrer">https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html</a></p><p> 這建議.collect(Collectors.toList()</p><p> 我們該怎么做</p></div></object></string> Java 8 流:myList.stream().map(Foo::bar).collect(Collectors.toList()) 的簡寫 Java .forEach(list :: add)與.collect(Collectors.toList()) 如何在Kotlin中的Java 8 Stream上調用collect(Collectors.toList())? Java 16的Stream.toList()和Stream.collect(Collectors.toList()的區別? 如何在Java 8流API中延遲初始化Collectors.toList()? Java Stream:如何避免在 Collectors.toList() 中添加 null 值? Java Stream Collectors.toList()不會編譯 java中Stream Collectors.toList()中的不兼容類型
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM