繁体   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