我今天进行了一次采访,接受采访的人对他的陈述感到困惑,问他TreeSet
是否等于HashSet
而不是HashSet
不等于TreeSet
。我说“不”,但根据他的回答是"is"。
怎么可能呢?
最佳答案
您的面试官是正确的,他们在某些特定情况下不具有对等关系。 TreeSet
可能等于HashSet
,反之亦然。这是一个例子:
TreeSet<String> treeSet = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
HashSet<String> hashSet = new HashSet<>();
treeSet.addAll(List.of("A", "b"));
hashSet.addAll(List.of("A", "B"));
System.out.println(hashSet.equals(treeSet)); // false
System.out.println(treeSet.equals(hashSet)); // true
原因是
TreeSet
使用比较器来确定元素是否重复,而HashSet
使用equals
。引用
TreeSet
:关于java - 是否有可能TreeSet等于HashSet但不是HashSet等于TreeSet,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62477034/