开发者社区 问答 正文

使用字节数组作为Map键

使用字节数组作为Map键,您是否看到任何问题?我也可以这样做new String(byte[]),String但使用起来更简单byte[]。 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 20:05:37 436 分享 版权
1 条回答
写回答
取消 提交回答
  • 问题是,byte[]将对象标识用于equals和hashCode,因此

    byte[] b1 = {1, 2, 3} byte[] b2 = {1, 2, 3} 不会与匹配HashMap。我看到三个选择:

    包装为String,但随后必须注意编码问题(您需要确保字节->字符串->字节为您提供相同的字节)。 使用List (在内存中可能会很昂贵)。 做自己的包装类,编写hashCode并equals使用字节数组的内容。

    2020-02-08 20:05:48
    赞同 展开评论
问答地址: