我今天进行了一次采访,接受采访的人对他的陈述感到困惑,问他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/

10-11 10:52