简体   繁体   English

Java,Streams:如何使用.collect(Collectors.toList())转换表达式

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

How can I convert 我该如何转换

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

into a single line expression like 变成单行表达式

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

Use flatMap : 使用flatMap

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

As a side note, you don't need Math.max here. 另外,您在这里不需要Math.max In this case i is always not less than j , so the same result can be generated simpler: 在这种情况下, i总是不小于j ,因此可以更简单地生成相同的结果:

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

You can achieve this with flatMap : 您可以使用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());

EDIT : just tested my code. 编辑:刚刚测试了我的代码。 It seems mapToObj doesn't work, so you have to use map and box the stream later. 似乎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 - .collect(Collectors.toList()) and Streams on Java Method 如何转换 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 Java 8 流:myList.stream().map(Foo::bar).collect(Collectors.toList()) 的简写 - Java 8 streams: Shorthand for myList.stream().map(Foo::bar).collect(Collectors.toList()) Java .forEach(list :: add)与.collect(Collectors.toList()) - Java .forEach(list::add) vs .collect(Collectors.toList()) 如何在Kotlin中的Java 8 Stream上调用collect(Collectors.toList())? - How can I call collect(Collectors.toList()) on a Java 8 Stream in Kotlin? Java 16的Stream.toList()和Stream.collect(Collectors.toList()的区别? - Differences of Java 16's Stream.toList() and Stream.collect(Collectors.toList())? 如何在Java 8流API中延迟初始化Collectors.toList()? - How to lazy initialize Collectors.toList() in java 8 stream api? Java Stream:如何避免在 Collectors.toList() 中添加 null 值? - Java Stream: How to avoid add null value in Collectors.toList()? Java Stream Collectors.toList()不会编译 - Java Stream Collectors.toList() wont compile java中Stream Collectors.toList()中的不兼容类型 - Incompatible types in stream Collectors.toList() in java
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM