Java 如何使用Eclipse集合将MutableMap转换为ObjectDoubleMap?

Java 如何使用Eclipse集合将MutableMap转换为ObjectDoubleMap?,java,eclipse-collections,Java,Eclipse Collections,如何使用Eclipse集合将MutableMap转换为ObjectDoubleMap 在我的用例中,我有一个可变的映射,它是聚合的结果。比如, MutableMap<String, Double> map = list.aggregateBy(func, factory, aggregator); MutableMap=list.aggregateBy(函数、工厂、聚合器); 我必须调用另一个只接受ObjectDoubleMap的方法,如何将map转换为ObjectDoubleM

如何使用Eclipse集合将
MutableMap
转换为
ObjectDoubleMap

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

MutableMap<String, Double> map = list.aggregateBy(func, factory, aggregator);
MutableMap=list.aggregateBy(函数、工厂、聚合器);

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

首先,感谢您使用Eclipse集合!当前,将
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));

注意:我是Eclipse集合的提交者。

谢谢,这是一种冗长的方式来调整原语的界面,但它仍然有效。正如我在回答中提到的,如果您觉得有一个转换API,我们可以在GitHub Repo上随意提出。还有,别忘了接受答案。接受!最好有一个更简单的APIs,它可以使用方法引用而不是lambda-
stringDoubleMutableMap.forEachKeyValue(targetMap::put)稍微简化
stringDoubleMutableMap.forEachKeyValue(targetMap::put);