java - 使用 byte[] 键从 HashMap 中获取值
问题描述
我正在尝试将一些值添加到地图中
Map<byte[], byte[]> samplerMap = new HashMap<>();
samplerMap.put(Bytes.toBytes("key"), Bytes.toBytes("value"));
要从地图中获取值,
samplerMap.get(Bytes.toBytes("key"))
当我调试这个时,我得到了一个null
值。byte[]
使用 a作为地图的键时是否有任何特殊情况。我该如何解决这个问题?
解决方案
您不能将数组用作 a 的键,HashMap
因为数组不会覆盖equals
and的默认实现hashCode
。因此,包含完全相同元素的两个不同数组实例将被视为不同的键。
您可以改用List<Byte>
as 键。
推荐阅读
- python - 删除弹性 beantalk EC2 实例后,芹菜任务和队列是否会中断?
- scala - Spark 结构化流 Protobuf ScalaPB 'java.lang.NoSuchMethodError"
- angular - 如果不指定整个路径,Ionic 4 导航错误
- c - 为什么 GCC/Clang 会接受 const 限定对象作为具有静态存储持续时间的对象的初始化程序?
- csv - Apache Nifi:合并两个 csv 文件中的行
- reference - 在 Rust 中,为什么 std::iter::Iterator 的 min 函数返回一个引用?
- go - 替换 go.sum 中的字符串
- python - 来自 python 的 .xlx 格式的电子邮件消息在 Outlook 中具有 .dat 类型
- php - 如何在没有凭据的情况下进行 git push?
- regex - 从变量中提取 UUID/PARTUUID 的 BASH 脚本