java - 如何使用 lambdaj 组合列表列表?

标签 java collections lambdaj

我希望能够使用 lambdaj 将子列表组合成单个列表。

我有一个有效的迭代版本:

// HDU elements are children of each subsystem
Collection<SpaceSystemType> subsystems = this.getAllSubsystems();
Set<SpaceSystemType> sources = new HashSet<SpaceSystemType>();

// Iterate the subsystems, collecting all the sources
for (SpaceSystemType subsystem : subsystems)
    sources.addAll(subsystem.getSpaceSystem()); // getSpaceSystem returns a List<SpaceSystemType>

return sources;

我希望能够做到这一点:

extract(subsystems, on(SpaceSystemType.class).getSpaceSystem());

但是提取返回一个

List<List<SpaceSystemType>> 

所以我一定使用了错误的命令。

哪个 lambdaj 命令可以实现我想要的效果?

最佳答案

我使用展平解决了这个问题:

List<SpaceSystemType> sources = flatten(extract(subsystems, on(SpaceSystemType.class).getSpaceSystem()));

SpaceSystemType 是 JAXB 生成的类,表示元素的子树。由于 SpaceSystemType.getSpaceSystem() 返回一个 List,因此有必要指示 lambdaj 从树中获取所有叶子。

关于java - 如何使用 lambdaj 组合列表列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5541163/

相关文章:

java - JimFS:/work 目录的用途是什么

java - 使用 editText 重新排序 ArrayList

java - 如何使用 lambdaj 和 hamcrest 匹配器 (hasItemsInArray) 来过滤列表

java - Java 中 C# 的 Single() 运算符等价于什么?

java - 如何让 JButton 切换 JPanel 并关闭 JFrame?

java - 低开销 Java Web 服务容器?

java - grails标签库问题

c# - 集合上的清除方法是否会释放事件订阅?

Java 结合自定义比较器使用比较器

Java : How to do aggregation over a list supporting min, 每组中的最大值、平均值、最后一种聚合