如何使用Eclipse Collections将MutableMap<String, Double>
转换为ObjectDoubleMap<String>
?
在我的用例中,我有一个可变映射,它是聚合结果。例如;
MutableMap<String, Double> map = list.aggregateBy(func, factory, aggregator);
我必须调用另一种只接受ObjectDoubleMap<String>
的方法,如何将map
转换为ObjectDoubleMap<String>
类型?我别无选择,只能使用Eclipse Collections框架。
答案 0 :(得分:1)
首先,感谢您使用Eclipse Collections!目前,将MutableMap
转换为ObjectDoubleMap
的最佳方法是使用forEachKeyValue()
进行迭代并将键值设为空MutableObjectDoubleMap
MutableMap<String, Double> stringDoubleMutableMap = Maps.mutable.with("1", 1.0, "2", 2.0);
MutableObjectDoubleMap<String> targetMap = ObjectDoubleMaps.mutable.empty();
stringDoubleMutableMap.forEachKeyValue((key, value) -> targetMap.put(key, value));
将来我们可以考虑添加一个API,以便更轻松地从RichIterable<BoxedPrimitive>
转换为PrimitiveIterable
。
您可以使用您希望拥有的API在Eclipse Collections GitHub Repo上打开问题。这有助于我们跟踪用户的功能请求。 Eclipse Collections也可以提供贡献,随时可以提供您想要的API:Contribution Guide。
更新了评论的答案,lambda可以简化为方法参考:
stringDoubleMutableMap.forEachKeyValue(targetMap::put);
注意:我是Eclipse Collections的提交者。