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

时间:2016-02-02 05:48:43

标签: java compare key

除了使用仅返回值-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库中有一个方法吗? (我已经检查了很多)或者我们是自己的?我们可以减去键之间的差异吗?

1 个答案:

答案 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;

 }

}