当前位置: 首页 > 面试题库 >

使用对象的实例作为哈希图中的键,然后使用完全新的对象访问它?

汤英豪
2023-03-14
问题内容

我有一个带有关键对象的hasmap,

HashMap<Key, Object> test;

并制作新的Key(“相同”)作为键。

所以它像..:

test.put(new Key("the same"), someObject);

(不将该键存储在变量中)

所以..一段时间之后…我想访问哈希图,因为我没有对象,所以我尝试制作新的Key(“ the same”)并将其作为键。但是它没有用。

如何使其运作?(不将第一个对象“键”保存在变量中)

因此,与此同时,目前,我使用String对象作为键。

HashMap<String, Object>

问题答案:

您需要实施hashCodeequals继续Key。这些方法的默认实现只是检查
实例是否 相等(换句话说,两个Objects实际上只有相同的对象才相等)。

进一步阅读

有效的Java-所有对象通用的方法



 类似资料:
  • 问题内容: 我正在阅读Java 1.6 API提供的HashMap类的代码,无法完全理解以下操作的需要(位于put和get方法的主体中): 该方法具有以下主体: 通过对提供的哈希码执行位操作,可以有效地重新计算哈希。即使API声明如下,我也无法理解这样做的必要性: 这很关键,因为HashMap使用2的幂的哈希表,否则哈希表在低位无差异时会遇到冲突。 我确实知道键值参数存储在数据结构数组中,并且该数

  • 如何使用动态获取和?经过广泛的搜索,我找到了使用管道的想法,但我不知道如何去做。在Angular2中是否有任何内置管道可以做同样的操作?

  • 问题内容: 我需要一个Python / C / C ++ / Java实现,可以 暂停散列进步 和 商店 ,在这样一个文件进度的进展是 可恢复 从该文件在稍后阶段。 无论上面列出的是哪种语言编写的,它都应该可以在Python中正常工作。建议您提供它以便与“ hashlib”一起良好地工作,但这不是必需的。同样,如果已经存在这样的事物,那么到此的链接就足够了。 对于一个想法 ,您的实现应该实现什么。

  • 问题内容: 我了解为什么将可变对象放入字典很危险。但是,将所有列表/集合转换为元组/ frozensets是昂贵的;对于许多类型,根本没有容易获得的不可变版本。因此,有时值得直接散列可变对象,并采取适当的预防措施以确保所讨论的对象永远不会被修改。 在开始为可变对象实现非常复杂的自定义哈希函数之前,我想检查一下用作哈希函数是否存在任何缺点- 无论是在性能,碰撞还是其他方面。 问题答案: 出于类似的原

  • 问题内容: 编码: 对象数据: 问题: 正确显示“ 2009-05-27 16:36:45”。 正确显示“ A5A50000”。 报告“ data.bsID未定义”。 报告“数据[bsID]未定义”。 我不清楚何时/不评估变量。也许我忽略了一些愚蠢的事情,但是我无法在这里解决我的问题。 问题答案: 您可以通过点表示法或括号表示法访问对象属性。 具有动态值时,必须使用后者: 因此,您真正想要的是:

  • 问题内容: 我对JNI相对较新,并且掌握了使用JNI处理Java对象中的整数和数组的基本知识。现在,我正在尝试修改/访问Java对象中的Java对象。 我一直在互联网和Stack Overflow上进行搜索,但还没有找到执行该操作的方法。 这是例子。 在Java中: 在JNI中,如何通过ObjectTwo从ObjectOne访问“ buff”?我尝试过这样的事情… 我做错了什么吗? 问题答案: 在