原始地图似乎没有实现java.util.Map
。
例如,如果我有一个函数,接受 JDK Map 作为参数并且现在想要传递 eclipse 集合实现,ByteObjectHashMap
那么最简单的方法是什么?
它在这里声明,该包org.eclipse.collections.impl.map.mutable
包含MutableMap
接口的实现。Primitive 位于 mutable 的子包中,我希望它们实现MutableMap
,而后者又实现java.util.Map
.
原始地图似乎没有实现java.util.Map
。
例如,如果我有一个函数,接受 JDK Map 作为参数并且现在想要传递 eclipse 集合实现,ByteObjectHashMap
那么最简单的方法是什么?
它在这里声明,该包org.eclipse.collections.impl.map.mutable
包含MutableMap
接口的实现。Primitive 位于 mutable 的子包中,我希望它们实现MutableMap
,而后者又实现java.util.Map
.
今天实现这一点的最简单方法是将 的内容复制ByteObjectMap
到Map<Byte, Object>
using forEachKeyValue
。
这是一个将 a 转换为 的ByteObjectMap<String>
示例Map<Byte, String>
。
@Test
public void byteObjectHashMapToMap()
{
Map<Byte, String> target = new HashMap<>();
ByteObjectMap<String> map =
ByteObjectMaps.mutable.<String>empty()
.withKeyValue((byte) 1, "1")
.withKeyValue((byte) 2, "2")
.withKeyValue((byte) 3, "3")
.withKeyValue((byte) 4, "4");
map.forEachKeyValue(target::put);
Map<Byte, String> expected = Map.of((byte) 1, "1",
(byte) 2, "2",
(byte) 3, "3",
(byte) 4, "4");
Assert.assertEquals(expected, target);
}
为原始地图添加视图将是 OSS 社区的合理贡献Map
,但这还没有完成。这可能是因为这不是一项微不足道的工作。当 JDK 中提供了 Project Valhalla 时,Eclipse Collections 中的原始映射实现Map<byte, String>
. 如果没有对 Java 泛型的原始专业化,这是不可能的。
您链接到的包文档是指“相关包”,但这显然是值得澄清的,因为我可以看到它可能会造成混淆。感谢您指出这一点。