当前位置: 首页 > 面试题库 >

Java一个类何时应该是可比较的和/或可比较的?

蓝星辰
2023-03-14
问题内容

我已经看到了同时实现Comparable和Comparator的类。这是什么意思?为什么我要一个使用另一个?


问题答案:

下面的文字来自Comparator vs Comparable

可比

可比较的对象能够将自己与另一个对象进行比较。类本身必须实现java.lang.Comparable接口,以便能够比较其实例。

比较器

比较器对象能够比较两个不同的对象。该类不是在比较其实例,而是在比较其他一些类的实例。此比较器类必须实现java.util.Comparator接口。



 类似资料:
  • 问题内容: 我有一个需要在字段上排序的对象列表,例如“分数”。我不加思索地编写了一个实现Comparator的新类,该类可以完成任务并且可以工作。 现在回头看一下,我想知道是否应该让我的类实现Comparable,而不是创建一个实现Comparator的新类。分数是订购对象的唯一字段。 我做的可接受的做法是什么? 正确的方法是“首先让类实现Comparable(用于自然排序),如果需要替代字段比较

  • 问题内容: Comparable和Comparator之间的主要区别是什么。 在什么情况下,哪个比另一个优先? 问题答案: 当你的类实现时,该类的方法将定义该对象的“自然”顺序。根据合同,该方法有义务(尽管不要求)与该对象上的其他方法保持一致,例如,当比较返回true 时,应始终为对象返回0 。 一个比较本身就是如何比较两个对象的定义,可用于可能不与自然顺序排列的方式来比较的对象。 例如,字符串通

  • 我的任务是用java编写mergesort,任务还规定我不能使用整数,我必须使用可比较的整数。这是我第一次使用java。我的问题是在合并函数内比较两个comp int数组中的元素。我尝试了if(list[I])compareTo(list2[j]),但compareTo只能取整数。任何帮助都将不胜感激

  • 我知道这些接口用于对集合中的对象进行排序。但我怀疑这两者的真正区别。我读到的一个事实是,如果要比较两个对象而不使用当前对象,请使用Compariable(此)。 但我的问题是即使使用比较器,我们也会比较相同的对象类型。 这里真正的区别是什么。我很困惑。假设下面的例子, 如果我使用比较器,我会让一个类实现比较器,而不是这个。年龄,它有人。年龄那么这里有什么不同呢? 我不知道Collections.s

  • 所有可用于int和double类型的比较操作符同样适用于apstring类型。例如,如果想知道两个字符串是否相等,可以这样写: if (word == "banana") { cout << "Yes, we have no bananas!" << endl; } 另一个有用的比较操作符可以将单词按字母顺序排列。如下: if (word < "banana") { cout << "You

  • 当我在浏览上面的接口时,在阅读了许多相同主题的站点后,我对这些接口的语法不是很清楚。 请考虑以下代码段: 如果每个查询都是可理解的。