【问题标题】:How to see if an object is more approximately equal如何查看一个对象是否更近似相等
【发布时间】:2015-07-27 20:00:50
【问题描述】:

我有方法:

<T extends Comparable<T>> T moreApproxEqual(T object, T less, T greater) {
    //TODO: return less or greater, depending on which is closer to object
    return null;
}

我有一个 T 列表,从中我发现变量“less”和“greater”是列表中最接近变量“object”的两个值。如果没有关于对象的更多信息,有什么方法可以判断两个对象中的一个是否更接近“对象”?

【问题讨论】:

  • 既然是Comparable,你可以使用compareTo...
  • compareTo 并没有承诺任何关于这些值的“接近性”的事情,不过,我上次检查过。如果两个对象更不同,则不能依赖返回值更大。
  • @cHao 虽然这是真的,但如果您自己创建类,从技术上讲,您可以让您的 compareTo() 方法返回一个距离(其中负数 => 小于,正数 => 大于)。不过,您可能应该为此创建一个 distance() 方法...
  • @NoseKnowsAll:distance() 方法确实更合适。没有充分的理由像这样将compareTo() 用于双重用途,因为它会添加您无法从任何其他实现中依赖的行为。

标签: java generics comparable approximate


【解决方案1】:

没有。您可以看出object 介于lessgreater 之间,但一般而言,Comparable 不会为您提供任何有意义的“距离”信息。

【讨论】:

  • 这是正确的。如果您只有更少或更多的信息,您将无法分辨哪个更接近。
猜你喜欢
  • 2021-11-15
  • 1970-01-01
  • 2011-03-26
  • 1970-01-01
  • 1970-01-01
  • 2020-04-29
  • 2016-06-27
  • 1970-01-01
相关资源
最近更新 更多