除了使用仅返回值-1,0和1的compareTo,因此无法用于此情况,
有没有办法比较键之间的差异?
示例Key A = 5 Key B = 7 and Key C = 10
(为简单起见,我在示例中使用数字,当我运行测试代码时,我不知道密钥是数字还是字符串。)
C - B = 3
C - A = 5
密钥C和B之间的差异较小,因此密钥B更接近于C
Java库中有一个方法吗? (我已经检查了很多)或者我们是自己的?我们可以减去键之间的差异吗?
答案 0 :(得分:1)
你可以做这样的事情
public static void main(String[] args) {
MyClass a=new MyClass(5);
MyClass b =new MyClass(7);
MyClass c =new MyClass(10);
MyClass result=c.closerTo(a,b);
}
interface Closer<T> {
T closerTo(T t1,T t2);
}
class MyClass implements Closer<MyClass>{
private Integer num;
public MyClass(Integer n) {
num=n;
}
@Override
public MyClass closerTo(MyClass t1, MyClass t2) {
Integer diff1=num-t1.num;
Integer diff2=num-t2.num;
return diff1<diff2?t1:t2;
}
}