【发布时间】:2022-01-03 22:54:09
【问题描述】:
我有以下地图:
LonM =[0, 0, 0, 0, 46, 15]
LatM =[5, 52, 35, 16, 37, 5]
并行地,我已经实现了一个复合模式类:
public class CompositeDataFrame implements IDataFrame, ICompositeDataFrame {
private String name;
private List <IDataFrame> children;
public CompositeDataFrame(String name){
this.name = name;
children = new LinkedList<>();
}
public void addChildren(IDataFrame child){
children.add(child);
}
我得到了如下查询方法:
public Map<Object, List<Object>> query(String keySelector, Predicate<Object> valuePredicate) {
Map<Object, List<Object>> result = new HashMap<>();
for (IDataFrame child:children)
result.putAll(child.query(keySelector, valuePredicate));
return result;
}
那么我们有以下调用查询方法的main:
CompositeDataFrame comp = new CompositeDataFrame("CompositeCities");
CompositeDataFrame comp1 = new CompositeDataFrame("2");
comp.addChildren(comp1);
comp1.addChildren(df);
comp.addChildren(df);
System.out.println("\n"+comp.query("LonM", entry -> ((Integer) entry) == 0));
问题是:如何连接每个孩子的地图?
PD:我使用了 putAll 方法,但它删除了相同键的映射,因此在这种情况下它没有用。
输出应该是:
LonM =[0, 0, 0, 0, 0, 0, 0, 0] LatM =[5, 52, 35, 16, 5, 52, 35, 16]
非常感谢!
【问题讨论】:
-
是的,我们有一个 Map,键是 LonM 和 LatM,值是 claudators 中的值
标签: java dataframe dictionary join composite