将比较器传递给java Collections.disjoint

apa*_*ana 4 java collections

是否可以将比较器传递给Collections.disjoint?在文档中我找不到接受比较器的方法的变体,或者我错过了什么?

Collections.disjoint(c1, c2);
Run Code Online (Sandbox Code Playgroud)

我可以在Collections文档中看到sort(Collections的方法)有两个版本,一个带比较器,另一个没有:

sort(List<T> list)
sort(List<T> list, Comparator<? super T> c)
Run Code Online (Sandbox Code Playgroud)
  • 为什么不相交没有接受比较器的版本?
  • 如果我不能修改单个对象的类,那么传递比较器的另一种方法是什么?(在我的例子中,单个对象的类型为String,因此我无法覆盖equals和hashcode.)

Tim*_*sen 11

这个答案介于评论和完整答案之间,但我认为Collections.disjoint()不暴露使用自定义比较器的可能性的原因是它不使用比较器来计算两个集合之间的不相交.

来自Javadoc:

public static boolean disjoint(Collection c1,Collection c2)

如果两个指定的集合没有共同的元素,则返回true.

用于确定两个元素是否"共同"的equals()方法是集合中每个条目的方法.另一方面,在Java中,比较器通常用于确定集合中两个元素的相对排序.