比较两个键之间的差异不使用 CompareTo java

Comparing the difference between two keys Not using CompareTo java

除了使用仅 returns 值为 -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 库中是否有用于此的方法? (我检查了很多)还是我们自己?我们可以减去键之间的差异吗?

你可以这样做

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;

 }

}