Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在HashSet中使用equals()方法_Java - Fatal编程技术网

Java 在HashSet中使用equals()方法

Java 在HashSet中使用equals()方法,java,Java,我在某个地方读到,equals()方法用于确定哈希集中的两个对象是否被认为是相同的。我对我的理解有点困惑。有人能解释一下这个场景吗。提前感谢。equals用于确定您试图添加或搜索的对象是否已存在于哈希集中。它不用于确定HashSet中的两个对象是否被认为是相同的,因为这两个对象不可能都在HashSet@Eran中……谢谢你的回答。请你再解释一件事……假设我们必须在HashSet中添加{o1,o2}。首先,在添加O1时,使用HASCODE(),它将在哈希表中找到索引。现在,它将看到在该特定索引中没

我在某个地方读到,equals()方法用于确定哈希集中的两个对象是否被认为是相同的。我对我的理解有点困惑。有人能解释一下这个场景吗。提前感谢。

equals
用于确定您试图添加或搜索的对象是否已存在于
哈希集中。它不用于确定
HashSet
中的两个对象是否被认为是相同的,因为这两个对象不可能都在
HashSet

@Eran中……谢谢你的回答。请你再解释一件事……假设我们必须在HashSet中添加{o1,o2}。首先,在添加O1时,使用HASCODE(),它将在哈希表中找到索引。现在,它将看到在该特定索引中没有存储任何东西,因此它将存储O1在假设索引1中。在此之后,它将考虑O2,并且假设使用HASCODE()O2也推断出相同的索引1,其中O1已经被存储。会出现在图片中,并假设o1和o2现在并不是指同一个物体。那么现在会发生什么呢?o1/o2都存储在chaining?中的1处@Bhavya是的,哈希集的每个索引都包含其哈希代码映射到此索引的所有元素的链接列表。