0

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

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

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

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

4

1 回答 1

1

首先,感谢您使用 Eclipse Collections!目前,将 a 转换为的最佳方法MutableMapObjectDoubleMap迭代使用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:贡献指南

更新了评论的答案,可以将 lambda 简化为方法参考:

stringDoubleMutableMap.forEachKeyValue(targetMap::put);

注意:我是 Eclipse Collections 的提交者。

于 2018-04-01T02:42:50.040 回答