将比较器传递给java Collections.disjoint

时间:2016-07-08 10:19:18

标签: java collections

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

Collections.disjoint(c1, c2);

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

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

1 个答案:

答案 0 :(得分:11)

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

来自Javadoc

  

public static boolean disjoint(Collection c1,                  收集c2)

     

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

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

相关问题