首页 > 解决方案 > 使用 byte[] 键从 HashMap 中获取值

问题描述

我正在尝试将一些值添加到地图中

Map<byte[], byte[]> samplerMap = new HashMap<>();
samplerMap.put(Bytes.toBytes("key"), Bytes.toBytes("value"));

要从地图中获取值,

samplerMap.get(Bytes.toBytes("key"))

当我调试这个时,我得到了一个null值。byte[]使用 a作为地图的键时是否有任何特殊情况。我该如何解决这个问题?

标签: java

解决方案


您不能将数组用作 a 的键,HashMap因为数组不会覆盖equalsand的默认实现hashCode。因此,包含完全相同元素的两个不同数组实例将被视为不同的键。

您可以改用List<Byte>as 键。


推荐阅读