如何使用Eclipse Collections将MutableMap转换为ObjectDoubleMap?

时间:2018-03-31 23:53:26

标签: java eclipse-collections

如何使用Eclipse Collections将MutableMap<String, Double>转换为ObjectDoubleMap<String>

在我的用例中,我有一个可变映射,它是聚合结果。例如;

MutableMap<String, Double> map = list.aggregateBy(func, factory, aggregator);

我必须调用另一种只接受ObjectDoubleMap<String>的方法,如何将map转换为ObjectDoubleMap<String>类型?我别无选择,只能使用Eclipse Collections框架。

1 个答案:

答案 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的提交者。