具有字节数组键和字符串值的 HashMap - containsKey() 函数不起作用

2023-11-22

我正在使用 HashMap:byte[] 键和字符串值。但我意识到即使我使用相同的对象(相同的字节数组和相同的字符串值)

myList.put(TheSameByteArray, TheSameStringValue)

到 HashMap 中,表仍然插入具有不同 HashMapEntry 的新对象。那么函数 containsKey() 就无法工作。

有人能为我解释一下吗?我怎样才能解决这个问题?谢谢。 (安卓Java)

@Override public boolean containsKey(Object key) {
    if (key == null) {
        return entryForNullKey != null;
    }

    int hash = Collections.secondaryHash(key);
    HashMapEntry<K, V>[] tab = table;
    for (HashMapEntry<K, V> e = tab[hash & (tab.length - 1)];
            e != null; e = e.next) {
        K eKey = e.key;
        if (eKey == key || (e.hash == hash && key.equals(eKey))) {
            return true;
        }
    }
    return false;
}

A byte[](或任何数组)无法作为键正常工作HashMap,因为数组不会覆盖equals,因此只有当两个数组引用同一个对象时,它们才会被视为相等。

你必须把你的byte[]在一些覆盖的自定义类中hashCode and equals,并使用该自定义类作为 HashMap 的键。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有字节数组键和字符串值的 HashMap - containsKey() 函数不起作用 的相关文章

  • 定期更新 SWT 会导致 GUI 冻结

    Problem 当 GUI 字段定期更新时 SWT 会冻结 我想要一个基于 SWT 的 GUI 其中文本字段的值会定期递增 最初我从单独的线程访问 textField 导致抛出异常 线程 Thread 0 org eclipse swt S
  • Jetpack 导航:如何从一个嵌套图的子级导航到另一个嵌套图的子级?

    导航结构 MainActivity nav root HomeFragment AuthNestedGraph nav auth BeforeOtpFragment home OtpFragment ProfileNestedGraph n
  • Java-如何将黑白图像加载到二进制中?

    我在 FSE 模式下使用 Java 和 swing 我想将完全黑白图像加载为二进制格式 最好是二维数组 并将其用于基于掩码的每像素碰撞检测 我什至不知道从哪里开始 过去一个小时我一直在研究 但没有找到任何相关的东西 只需将其读入Buffer
  • android textview 有字符限制吗?

    我正在尝试在 android TextView 中输入超过 2000 3000 个字符 它不显示任何内容 任何一份指南是否对 android textview 有字符限制或什么 我在G3中做了一些小测试 我发现 如果activtiy布局中有
  • 如何将 Observable>> 转换为 Observable>

    我陷入了如何将以下可观察类型转换 转换为我的目标类型的困境 我有以下类型的可观察值 Observable
  • 当您在数组列表上调用remove(object o)时,它如何比较对象?

    当您在 java 中的数组列表上调用remove object o 时 它如何比较对象以找到要删除的正确对象 它使用指针吗 或者它使用 Comparable 接口来比较对象吗 ArrayList remove 依赖于对象的实现Equal方法
  • 在 Java 中将弯音发送到 MIDI 音序器

    我了解启动和运行 MIDI 音序器的基础知识 并且希望能够在播放过程中增加 减小序列的音高 但弯音是发送到合成器而不是音序器的消息 我尝试将音序器的接收器设置为合成器的发射器 当我发送弯音短消息时 音序器保持相同的音调 但随后合成器以新的弯
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • 带有 OpenId 提供程序的 Java Spring 安全性

    我有一个 spring MVC 应用程序 另一个客户端应用程序想要使用 open id connect 访问我的 spring 应用程序 如何在服务器端实现开放ID提供商 请帮忙 MITREid 连接 OpenID Connect Java
  • 如何找到被点击的JLabel并从中显示ImageIcon?

    这是我的代码 我想知道哪个l单击 然后在新框架中显示该 ImageIcon e getSource 不起作用 final JFrame shirts new JFrame T shirts JPanel panel new JPanel n
  • 如何构建自定义摄像机应用程序?

    我正在尝试开发一个自定义摄像机录像机 当我的设备在 Activity 的 beginRecording 中执行 start MediaRecorder 方法时 应用程序崩溃 我不知道出了什么问题 因为我遵循谷歌API指南 http deve
  • JSch中如何设置文件类型和文件传输模式?

    我使用 Apache Common NetFTPClient并设置了我的ftpClient在上传文件之前使用如下所示的方法 ftpClient setFileType FTP BINARY FILE TYPE ftpClient setFi
  • 剪切评级栏中的图像

    我制作了自己的评级栏 花朵图像有 4 种尺寸 xdpi hdpi 等 从 24px24px 到 64x64px
  • 需要在R中按行绑定列表数据

    我在 R 中按行绑定列表时遇到问题 我的列表数据集是 id 1 data k 1 id k b c 1 1 1 3 data k 2 id k b c 1 2 1 4 id 2 data k 1 id k b c 2 1 1 6 data
  • 在 Android 手机中通过耳机插孔发送数据

    我目前正在处理一个新项目 我必须通过具有特定电压的耳机插孔发送数据 然后我可以在该电压上工作 所以这里我需要根据我的数据来编程具体电压 我是否可以在android中访问耳机的输出电压 然后创建一个应用程序来控制该电压 这是一篇讨论此问题的
  • 摩尔斯电码 至 英语

    我现在的问题是让 摩尔斯电码转英语 正常工作 将英语转换为莫尔斯电码的第一部分工作正常 我知道以前已经有人问过这个问题 但我不知道我做错了什么 我知道我需要在某个地方进行拆分 但我只是不确定将其放在代码中的何处 现在 莫尔斯电码到英语的部分
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside
  • 如何正确编写AttributeSet的XML?

    我想创建一个面板适用于 Android 平台的其他小部件 http code google com p android misc widgets 在运行时 XmlPullParser parser getResources getXml R
  • 为什么带处理程序的连续自动对焦相机不允许切换相机闪光灯?

    到目前为止我所做的 我已经实现了用于读取二维码的自定义相机 需要继续聚焦相机以获得更好的二维码读取 我的问题当我使用处理程序每 秒聚焦一次时 相机闪光灯开 关按钮不起作用 或者打开和关闭相机闪光灯需要太多时间 当我删除每秒自动对焦相机的代码
  • 我应该如何在 Android 上使用 Retrofit 处理“无互联网连接”

    我想处理没有互联网连接的情况 通常我会运行 ConnectivityManager cm ConnectivityManager context getSystemService Context CONNECTIVITY SERVICE N

随机推荐

  • PHP:选择更改时,将表单发布给自己

    这基本上就是标题所说的 我有一个带有选择控件的表单 我想强制表单在更改时回发给自己 bmsclientlist clientobj gt getBMSClientList echo
  • 如何获取句子中单词的长度?

    我正在尝试获取句子中每个单词的长度 我知道你可以使用 len 函数 我只是不知道如何获取每个单词的长度 而不是这个 gt gt gt s python is pretty fun to use gt gt gt len s 27 gt gt
  • Vue - 何时以及为何使用 $el

    我在这里找到了这个答案 https stackoverflow com a 50431015 11735826我想知道为什么这里使用 el 以及为什么没有 el 元素它就不起作用 当你使用refhtml 标签上的属性 DOM 元素由以下方式
  • Sphinx 中的常见链接目标

    我有很多 Sphinx 页面 上面有相同的链接 像那些 CC BY https creativecommons org licenses by 3 0 MIT http opensource org licenses MIT 目前 我在每个
  • 如何匹配包含特定字符串的属性?

    当属性包含多个单词时 我在按属性选择节点时遇到问题 例如 div class atag btag div 这是我的 xpath 表达式 class atag 该表达式适用于 div class atag div 但不适用于前面的示例 我怎样
  • Mac OSX、Emacs 24.2 和 nrepl.el 不工作

    我在用着nrepl el Emacs 24 2 我的 S O 版本是 OS X Lion 10 7 5 运行命令 M x nrepl启动后REPL会话通过lein lein repl 我能够连接到它 但如果我尝试使用 M x nrepl j
  • 在 Mac OS X 上使用链接描述文件

    有没有办法使用链接器脚本ld在 Mac OS X 上 The GNU ldLinux 上的程序接受 T
  • 如何使用 lxml、XPath 和 Python 从网页中提取链接?

    我有这个 xpath 查询 html body tbody tr td a title href 它提取所有带有标题属性的链接 并给出href in FireFox 的 Xpath 检查器插件 但是 我似乎无法将它与lxml from lx
  • 如何使用retofit2和RxAndroid取消请求

    我正在使用 Retrofit 2 0 和 Rx android 来加载我的 API 我遵循该部分RxJava Integration with CallAdapter at 这个网站而且效果很好 但是 我不知道如何取消可观察对象的加载请求
  • Bash 进度条[重复]

    这个问题在这里已经有答案了 我正在使用以下脚本来浏览 whois 中的大量域列表并找到注册商 对于服务器 DNS 迁移很有用 并且它工作正常 不过 为了方便起见 我想在其中加入一个进度条 这是我的脚本 如果可以改进请告诉我 bin bash
  • Asp.net MVC 3 使用 DataAnnotations 进行条件验证

    我正在使用 Asp net MVC 3 面临数据注释的验证问题 如下所示 我们在单独的库项目中维护模型 模型类层次结构如下 public class EditAlternateMailingAddressModel BaseModel pu
  • Spring MVC 将 ArrayList 传递回控制器

    我是春天的新手 我显示用户列表 每行都有一个用于删除用户的复选框 控制器 Controller public class AdminController Autowired private UserDao userDao RequestMa
  • 从 JList 中删除项目

    我有一个简单的 Jlist 其中包含来自List
  • WSAGetLastError() 只是 GetLastError() 的别名吗?

    在我的代码中 我有带有 I O 完成端口的异步 I O 对于读 写完成回调 我得到一个HANDLE 当然可以是套接字 文件句柄 命名管道等 因此 如果这样的例程出现问题 我想检查错误 但如何知道它是否是 网络 HANDLE a SOCKET
  • 在 Elixir 中查找代码点是否为大写

    我需要检测 Elixir 中的代码点是否为大写字母 我尝试检查它的值是否在范围内65 90但这对非拉丁大写字母失败 我也尝试过检查是否 String upcase cp cp 然而 这对非字母 即数字 标点符号 失败 我真的不想遍历整个 u
  • UIImageView,设置 ClipsToBounds 以及我的图像如何失去理智

    我正在开发一个 iOS 4 应用程序 我正在使用此代码UIImageView on an UITableViewCell cell photo contentMode UIViewContentModeScaleAspectFill cel
  • Hibernate 标准、整数和“like”

    我正在将一些 hql 语句迁移到 Criterias 现在我正在解决一个问题 实体属性是 Integer 类型 但我需要使用通配符搜索 所以在 hql 中我这样做 session createQuery from P1 where id l
  • 运行模拟器时 SQLiteConnection 数据库泄漏

    我正在运行模拟器并收到以下有关内存泄漏的错误 有趣的是 泄漏的数据库似乎是 Google gms 的数据库 而不是用户数据库 有谁知道如何修理它 谢谢 09 27 15 55 07 252 2058 2068 com google andr
  • 如何转到 vim 中所有缓冲区的最后一个编辑位置?

    很容易转到当前缓冲区中的最后一个编辑位置 看如何返回到 Vim 中最后一行之前编辑的行 更改列表是缓冲区本地的 每个缓冲区都有自己的更改列表 然而 我从最近编辑的缓冲区导航到另一个缓冲区是很常见的 并且以某种方式返回到原始缓冲区中的最后一个
  • 具有字节数组键和字符串值的 HashMap - containsKey() 函数不起作用

    我正在使用 HashMap byte 键和字符串值 但我意识到即使我使用相同的对象 相同的字节数组和相同的字符串值 myList put TheSameByteArray TheSameStringValue 到 HashMap 中 表仍然