这个问题是对java流进行分类分区的后续问题
我有一个流
,其中
class A {
String category();
String data();
}
a -> {xyz, zyx}
b -> {abc}
您需要略有不同的groupby
stream.collect(Collectors.groupingBy(A::getCategory,
Collectors.mapping(A::data, Collectors.toList()));
我有一个,其中 我希望获得一个,其中原始流根据category()的值被分区为子列表。使用for循环实现它是非常简单的,但是有没有可能获得一个更优雅的利用java流的解决方案呢? 示例: 给定,我想获得一个映射:
问题内容: 如何在Java 8 Stream上实现“分区”操作?划分是指将流分成给定大小的子流。它在某种程度上与Guava Iterators.partition()方法相同,只是希望分区是延迟评估的Streams,而不是List的Streams。 问题答案: 将任意源流划分为固定大小的批次是不可能的,因为这会加重并行处理。并行处理时,你可能不知道拆分后的第一个子任务中有多少个元素,因此你无法为下
如何在Java8 Stream上实现“分区”操作?通过分区,我的意思是把一个流分成给定大小的子流。不知何故,它将与GuavaIterators.partition()方法相同,只是希望分区是延迟计算的Streams而不是List的。
我有一个地图列表,并希望对某些列进行分组和求和。 地图列表:
我有一个映射,其中FullName是一个对象,包含另一个类名为FirstName和LastName的对象。名字和姓氏是字符串。(是的,我知道这是一个糟糕的设计,但我正在努力学习排序) 密钥字符串只是id,比如1,2,3,。。。 我想根据全名(名字和姓氏)进行排序,然后返回一个id列表。 这是我到目前为止的代码,但我在传递比较器的排序部分遇到语法错误。而且我很确定我在做一些语义上不正确的事情。
问题内容: 假设我有一个void方法,该方法只对对象进行转换而没有返回任何值,并且我想在流map()函数的上下文中使用它,如下所示: 该示例是为了简单起见而构成的-实际方法除了在处理对象的UUID之外,还在做其他事情。 无论如何,在上述情况下如何使用void方法?当然,我可以使该方法返回转换后的对象,但这不重要,并且违反了设计(该方法应为空)。 问题答案: 似乎是强制使用Java 8流的情况。相反