Java 类对象的哈希集。什么是散列?
我注意到,在Java中,您可以创建甚至包含对象的哈希集。例如,您可以创建一个类(比如class1),其中包含int、double和array作为变量,然后您可以说-Java 类对象的哈希集。什么是散列?,java,hashset,Java,Hashset,我注意到,在Java中,您可以创建甚至包含对象的哈希集。例如,您可以创建一个类(比如class1),其中包含int、double和array作为变量,然后您可以说- HashSet<class1> = new HashSet<>(); HashSet=newhashset(); 很明显,在整数的HashSet中,必须使用一个hash函数,该函数将整数作为输入,并告诉函数存储在哪个bucket中。但对于这个class1变量,哈希值到底是什么?有三个不同的字段(可能没有一
HashSet<class1> = new HashSet<>();
HashSet=newhashset();
很明显,在整数的HashSet中,必须使用一个hash函数,该函数将整数作为输入,并告诉函数存储在哪个bucket中。但对于这个class1变量,哈希值到底是什么?有三个不同的字段(可能没有一个是原语)。设置和映射使用的“哈希函数”是hashCode()
。除非显式重写hashCode()
,否则将使用该实现。也就是说,将生成仅基于引用而不基于字段的哈希
从上面的链接:
类Object
定义的hashCode方法会为不同的对象返回不同的整数。(这通常通过将对象的内部地址转换为整数来实现,但JavaTM编程语言不需要这种实现技术。)
设置和映射使用的“哈希函数”是hashCode()
。除非显式重写hashCode()
,否则将使用该实现。也就是说,将生成仅基于引用而不基于字段的哈希
从上面的链接:
类Object
定义的hashCode方法会为不同的对象返回不同的整数。(这通常通过将对象的内部地址转换为整数来实现,但JavaTM编程语言不需要这种实现技术。)
对于给定的类,JVM中只有一个类对象
类对象的哈希代码是“标识哈希”-根据对象中的实现。给定类的JVM中只有一个类对象
类对象的哈希代码是“标识哈希”-根据对象中的实现。-请特别注意括号中靠近末尾的部分。-请特别注意括号中靠近结尾的部分。我认为他指的不是
java.lang.Class
。我认为他指的不是java.lang.Class
。