如何使用java-streams
将多个list
值收集到一个列表中?
List<MyListService> services;
services.stream().XXX.collect(Collectors.toList());
interface MyListService {
List<MyObject> getObjects();
}
因为我对接口有完全的控制权:还是应该更改方法以返回数组而不是列表?
您可以使用flatmap
收集MyListService
实例中包含的列表:
List<MyObject> list = services.stream()
.flatMap(s -> s.getObjects().stream())
.collect(Collectors.toList());
我有一个类,有多个成员。 还有一个类,只有两个属性: 我需要遍历类中的各种列表,并创建类对象,并添加到这样的列表中: 这里重复了if和for循环。 如何使用Java流实现这一点? 注意:类,和之间没有关系,也没有公共接口。
出了什么问题?
我对Java8相当陌生。我需要将POJO列表按一定标准转换为group,并在UI上显示。 > 将属于儿童类别的对象列表转换为人员类别。 返回列表。 ...主要代码... 上面的FOR-LOOP不能被Java8 Streams替换吗?
给定需要排序和分组的对象列表: 我想将列表分组为列表中的列表,按widgetCode分组,每个子列表的元素按照它们在原始列表中遇到的顺序排列。我知道可以使用收集器将它们分组到列表映射中: 我并不认为键是理所当然地排序的,所以我采取了额外的步骤,将整个内容加载到SortedMap类型中: 我知道我可以通过使用.values()从sortedWidgetMap获取集合,而且我猜它是一个有序集合,因为它
我有一个包含多列的数据框架: 我现在想将组合成一列。但是,我不知道列列表会有多大,否则我可以使用UDF3来组合这三个。 所以期望的结果是: 我怎样才能实现这一点? 不工作的伪代码: 最坏的解决方法是对输入列的数量执行switch语句,然后为每个输入列编写一个UDF,即2-20个输入列,如果提供了更多的输入列,则抛出一个错误。
问题内容: [‘a’,’a’,’b’,’c’,’c’,’c’] 至 和 问题答案: x=[‘a’,’a’,’b’,’c’,’c’,’c’] >>> map(x.count,x) [2, 2, 1, 3, 3, 3] >>> dict(zip(x,map(x.count,x))) {‘a’: 2, ‘c’: 3, ‘b’: 1} >>>