11得票1回答
Stream<Stream>: flatMap vs. reduce

如果我执行以下代码将两个流“连接”起来: 首先使用 flatMap 对Stream&lt;Stream&lt;Integer&gt;&gt;进行操作 然后使用 Stream.concat() 缩减一个Stream&lt;Stream&lt;Integer&gt;&gt; 在这两种情况下...

10得票4回答
Java 8按一对多分组

我想学习如何使用Java 8中的流式编程语法,但遇到了一些困难。 当每个值都有一个键时,使用groupingBy很容易。但是如果我对于每个值有一个键列表,并且仍然想使用groupingBy进行分类,那么我必须将其分为几个语句吗?或者可能有一些流式魔法可以使它更简单。 这是基本代码:List...

10得票2回答
collect(supplier,accumulator,combiner)的组合器组合顺序定义在哪里?

Java API文档说明collect方法的combiner参数必须是“一个可结合、不干扰、无状态的函数,用于组合两个值,必须与累加器函数兼容”。 一个combiner是一个BiConsumer&lt;R,R&gt;,它接收两个类型为R的参数,并返回void。但文档没有说明我们应该将元素组合...

15得票3回答
如何在Java 8中将Set转换为Map,其中Set作为值?

我有以下的类:class A { private String id; private String name; private String systemid; } 我得到了一个A的集合,想将其转换为一个映射,其中键是系统ID,值是A的集合。(Map&lt;String, ...

12得票2回答
Java 8 Stream:过滤、处理结果,然后处理排除项

在Java 8的Streams中,我知道如何基于谓词对集合进行过滤,并处理谓词为true的项。我想知道的是,如果谓词将集合分成仅两组,是否可以通过API基于谓词进行过滤、处理过滤结果,然后立即链接到一个调用,以处理过滤器排除的所有元素? 例如,考虑以下列表:List&lt;Integer&g...

15得票7回答
使用Java 8流方法获取最大值的最后一个

给定一个具有属性的项目列表,我正在尝试使具有最大属性值的最后一个项目出现。 例如,对于以下对象列表: t i A: 3 D: 7 * F: 4 C: 5 X: 7 * M: 6 我可以获得具有最高 i 值的事物之一: Thing t = items.stream() ...

8得票4回答
Java流:将地图列表转换为集合

我有一个列表,其中每个元素都是一个Map:List&lt; Map&lt;String, List&lt;String&gt;&gt; &gt; 我想使用Java 8的特性将所有列表中的元素(即Map中的值)收集到一个单独的Set中。 例如: Input: [ {"a" : ["b",...

394得票13回答
使用流生成地图时忽略重复项

Map&lt;String, String&gt; phoneBook = people.stream() .collect(toMap(Person::getName, ...

85得票12回答
有没有一种优雅的方式来分块处理流?

我的具体情况是批量向数据库插入数据,因此我想累积DOM对象,当达到1000个时刷新。 我通过将代码放在累加器中来检测是否满了然后进行刷新,但这似乎是错误的 - 刷新控制应该来自调用方。 我可以将流转换为List,然后以迭代方式使用subList,但这也似乎很笨拙。 有没有一种简洁的方法在...

170得票5回答
没有进行'isPresent()'检查的'Optional.get()'。

我在Java中有以下搜索代码:return getTableViewController().getMe().getColumns().stream() .filter($ -&gt; Database.equalsColumnName($.getId(), columnId)) ...