Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
嘿,我不知道如何在我要实现的Comparator类中实现compareTo方法。我正在尝试将两个对象的整数值进行升序比较。但是我真的不确定去哪里
稍后,我将在另一个类中将此类称为collections.sort(someList,myComparator)。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
private class myComparator implements Comparator<Object>{
@Override
public int compareTo(Object obj1, Object obj1) {
if ((obj1.getNumber() - obj2.getNumber()) == 0) {
return 0;
}
if ((obj1.getNumber() > obj2.getNumber()) {
return 1;
}
return -1;
}
嘿,我不知道如何在我要实现的Comparator类中实现compareTo方法。我正在尝试将两个对象的整数值进行升序比较。但是我真的不确定去哪里
稍后,我将在另一个类中将此类称为collections.sort(someList,myComparator)。
最佳答案
编辑后,您的Comparator
现在采用Object
类型。以下解释的相同规则将适用于您的Comparator<Object>
。但是,由于object没有任何此类方法,因此如果不进行显式强制转换,将无法调用getNumber
方法。
如果使用Comparator
,则应注意以下几点
您实现Comparator<Event>
接口。这意味着您要比较两个Event
对象。Comparator
没有compareTo
方法。它具有一个compare
方法,该方法将采用您要实现的Comparator
类型的两个参数。由于实现了Comparator<Event>
,因此compare
方法应带有2个Event
参数。
在java-doc
中阅读Comparator
以获取compare方法。它解释了int
返回值代表什么。如果getNumber
返回数字,请避免相减,否则您可能是溢出的受害者。
您已将myComparator
声明为private
类。仅当myComparator
是内部类时,才允许这样做。
我故意不提供正确的代码,因为我想避免用汤匙喂您答案。
关于java - Java:如何使用Comparator接口(interface),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30589607/
10-12 06:28