ret*_*one 2 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;
Run Code Online (Sandbox Code Playgroud)
我希望能够这样做:
extract(subsystems, on(SpaceSystemType.class).getSpaceSystem());
Run Code Online (Sandbox Code Playgroud)
但提取物返回a
List<List<SpaceSystemType>>
Run Code Online (Sandbox Code Playgroud)
所以我必须使用错误的命令.
哪个lambdaj命令实现了我想要的?
我用flatten解决了这个问题:
List<SpaceSystemType> sources = flatten(extract(subsystems, on(SpaceSystemType.class).getSpaceSystem()));
Run Code Online (Sandbox Code Playgroud)
SpaceSystemType是一个JAXB生成的类,表示元素的子树.由于SpaceSystemType.getSpaceSystem()返回一个List,因此必须指示lambdaj从树中获取所有叶子.
归档时间: |
|
查看次数: |
1833 次 |
最近记录: |