无论顺序如何,Hashset上的.equals都会返回true吗?

use*_*740 10 java hashset

对于java中的Hashset,有一个.equals方法,用于比较每个集合中的元素.无论订单如何,这都会恢复吗?

例如,假设我们有一个元素集{a,b,c},另一个集合元素{b,c,a}

如果你在这两个集合上使用.equals它会返回true,还是必须进行排序?

小智 9

这应该返回true.文件说:

将指定对象与此set进行相等性比较.如果给定对象也是一个集合,则返回true,两个集合具有相同的大小,并且给定集合的每个成员都包含在此集合中.这可确保equals方法在Set接口的不同实现中正常工作.


Mat*_*all 5

Java HashSet是无序的 - 它们没有排序。因此,您的问题根本无法提出。该集合{a,b,c}与集合相同{b,c,a}。就是说,HashSet继承的AbstractSet#equals(Object)告诉我们以下内容:

比较指定对象与此设置是否相等。返回true是否给定对象也是一个集合,两个集合的大小相同,并且给定集合的每个成员都包含在此集合中。这样可以确保该equals方法在Set接口的不同实现中都能正常工作。


Hui*_*eng 2

HashSet实现Set接口(对数学集合抽象进行建模),该接口不包含顺序信息,因此排序在集合中没有意义。结果,equalsaSet只考虑成员而忽视成员的命令。