问题内容: 我很好奇为什么返回这个: 与此相反: 将哈希码显示为十六进制而不是十进制有什么好处? 问题答案: 用于根据对象所在的内存位置进行计算。内存位置几乎普遍显示为十六进制。 默认的返回值不是对哈希码非常感兴趣,而是以一种独特的方式来标识对象以进行调试,而哈希码可以很好地用于标识(实际上,类的组合)名称+内存地址确实是唯一的;虽然不能保证哈希码是唯一的,但它通常很接近)。
问题内容: 在Java API中,HashSet的实现使用Object作为 内部HashMap 的值, 但是HashMap允许其值为null。我认为并不需要填写该值,那么为什么要这样做呢? 问题答案: 因为HashSet合同指定了返回值(true如果指定的对象存在并被删除)。为此,它使用包装的 方法返回已删除的值。 如果要存储而不是存储对象,则对 的调用将返,这与尝试删除不存在的对象的结果没有区别
问题内容: 我有一个保证是不同的对象的集合(尤其是由唯一的整数ID索引)。我也确切地知道它们中有多少(并且数目不会改变),并且想知道Array是否比HashSet在存储/检索所述元素方面具有显着的性能优势。 在纸上,Array保证了恒定的时间插入(因为我提前知道了大小)和检索,但是HashSet的代码看起来更简洁并且增加了灵活性,所以我想知道是否会因为使用它而失去任何性能方面的信息,至少在理论上是
问题内容: 默认生成的hashCode和equals实现充其量是丑陋的。 是否有可能使eclipse从HashCodeBuilder和EqualsBuilder生成一个,甚至使用ToStringBuilder生成一个toString? 问题答案: 看看Commons4E 它已经有一段时间没有更新了,但是我猜它不需要改变很多吗? 更新:刚刚针对3.4.1进行了检查,并且工作正常。
问题内容: 假设我创建了一个对象,该对象具有ID,firstName,lastName和email,用于实例变量和相应的setter / getter方法。如何,如果我不重写计算中时,它存储在集合对象的对象? 问题答案: 如果不重写hashcode(),则集合将使用Object类中的默认实现。即使根据equals()方法它们相等,此实现也会为不同的对象提供不同的值。 一些集合(例如HashSet,
问题内容: Eclipse的源菜单有一个“ generate hashCode / equals方法”,它可以生成类似下面的函数。 如果在生成时选择多个字段,并且Eclipse使用上面显示的相同模式。 我不是哈希函数的专家,我想知道生成的哈希函数有多“好”吗?在哪些情况下会发生故障并导致过多的碰撞? 问题答案: 你可以看到的hashCode函数在执行的 这是一个这样的示例,您的Eclipse生成的
问题内容: 我有一个用于存储对象的HashMap: 但是,当尝试检查键是否存在时,方法会返回。 和方法已实现,但未找到密钥。 调试一段代码时: 我有: 但 是什么原因导致这种奇怪的行为? 问题答案: 将密钥插入地图后,您不得对其进行修改。 编辑:我在Map中找到了javadoc的摘录: 注意:如果将可变对象用作地图键,则必须格外小心。如果在对象是映射中的键的情况下以影响等值比较的方式更改对象的值,
问题内容: 我有一个整数数组: 我需要一个类型集: 如果我执行以下操作: 它当然认为我的意思是: 而我的意思是: 这是因为int是基元。如果我使用过String,那么一切都会起作用: 如何轻松,正确和简洁地从以下位置进行: 至 谢谢! 问题答案: 一些进一步的解释。asList方法具有此签名 因此,如果您这样做: 或这个: 在这些情况下,我相信Java能够推断出您想要返回一个List,因此它会填充
问题内容: 有一些实用方法可以创建like 及其重载。 但是,这种方法不存在或在类。 有没有更好的方法可以做到这一点,或者Guava认为这样的映射始终是恒定映射,并且是最好的选择,并且不需要为它提供实用程序。 问题答案: 你为什么要那些定期或?您可以这样做: 用的东西是,它是多一点点麻烦创造; 您首先需要制作一个,然后将键值对放入构建器中,然后调用它来创建。如果要使用单个键值对创建,则该方法可以缩
问题内容: 我尝试了一个小时,但没有找到任何最佳方法来实现反向的哈希图迭代,这就是我拥有的哈希图。 我也看过TreeMap的例子, 但是treemap也按升序给出,我想要的是降序。 问题答案: Hashmap没有特定的顺序。但是您可以使用TreeMap。 也许这个简单的例子可以帮助您:
问题内容: 建议和有时是必要的,即表示值(类 值类 )来覆盖,[和任选]的方法。这些方法返回的值取决于类及其超类的成员变量的全部或子集。为了实现它们正常,你必须了解理论的一点点 散列 和代数和集理论的一点点(不要太多,几乎一切都在explaind 的javadoc 这些方法和有效的Java形式乔希布洛赫。) 在大多数情况下,此方法的实现遵循一个模板,并且IDE(如Eclipse JDT)包括生成它
问题内容: 我的班级有一个名为DataStorage的哈希图: 如何在另一个类中访问此HashMap中的数据? 问题答案: 将HashMap创建为实例变量,并提供一种将其访问类API的方法:
问题内容: 在最坏的情况下,对单个对象的查找操作OR 是正确的吗?那么,对于元素查找将是? 问题答案: 是的,但这实际上是最坏的情况:如果中的所有元素都具有相同的哈希码(或导致相同存储桶的哈希码)。使用正确编写的且正态分布的密钥样本,查找为O(1)。
问题内容: 好的,所以我花了几个小时试图用Java中的HashMap这个概念来解决问题,但只是无法弄清楚。我看过许多教程,但似乎都没有一个能满足我的确切要求,我无法使其正常运行。 我试图用Java(或类似的东西)创建一个关联的多维数组,以便我既可以使用字符串键又可以保存到数组或从数组中检索。 这就是我将在PHP中执行的操作,并最好地解释了我要执行的操作: 这是我在Java中尝试过的方法,但无法正常
问题内容: 我发现Java 的根类方法没有实现: 如果我有一个and an ,如何不使用就知道the 和value ?只需执行即可。 我尝试了两个对象,但令我大吃惊的是值是相同的:它们都是1。 问题答案: 是一种方法,意味着系统库在内部被调用。有关更多详细信息,请参见Java本机接口。