gpt4 book ai didi

java - 类对象的 HashSet。什么是哈希值?

转载 作者:行者123 更新时间:2023-12-01 23:37:08 25 4
gpt4 key购买 nike

我注意到在 Java 中,您可以创建一个甚至包含对象的 HashSet。例如,您可以创建一个类(例如 class1),其中包含 int、double 和数组作为变量,然后您可以说 -

HashSet<class1> = new HashSet<>();

很明显,在整数的HashSet中,必须使用哈希函数,该函数将整数作为输入,并告诉函数将其存储在哪个桶中。但是对于这个class1变量,到底哈希了什么?存在三个不同的字段(可能它们都不是基元)。

最佳答案

集合和映射使用的“哈希函数”是hashCode()。除非您显式重写 hashCode(),否则实现 as defined in Object将会被使用。也就是说,将生成仅基于引用而不完全基于字段的哈希。

来自上面的链接:

As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.)

关于java - 类对象的 HashSet。什么是哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18501261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com