java www.example.com的可能值Integer.compare[已关闭]

fcy6dtqo  于 2023-05-05  发布在  Java
关注(0)|答案(2)|浏览(85)

已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

昨天关门了。
Improve this question
在Integer.compare(a,B)的文档中说,如果a小于b,它将返回一个小于0的值,如果a大于b,它将返回一个大于0的值。
在我的代码中实现了这个方法之后,我只看到它返回-1,0或1。我现在的问题是,它是否也可以返回其他值,例如-5?
我必须写代码,重写compareTo方法,它必须只返回-1,0或1,没有其他值。在我的compareTo中,我使用Integer.compare,所以我想知道是否会有任何情况下它会返回-1,0,1以外的值。

bvuwiixz

bvuwiixz1#

在我的代码中实现了这个方法之后,我只看到它返回-1,0或1。我现在的问题是,它是否也可以返回其他值,例如-5?
是的,可以。当前的实现可能只返回您观察到的值,但没有任何东西可以阻止将来的实现更改。
我必须写代码,重写compareTo方法,它必须只返回-1,0或1,没有其他值。在我的compareTo中,我使用Integer.compare,所以我想知道是否会有任何情况下它会返回-1,0,1以外的值。
对于Comparable.compareTo(或Comparator.compare,或类似的方法)的结果,您应该只检查与零相关的结果,即:== 0< 0> 0(或!=<=>=)。

n9vozmp4

n9vozmp42#

我不相信他们会改变实现,但是将这些返回值修改为[-1,0,1]非常容易。
代码如下:

int modifiedCompareTo(Integer a, Integer b) {
    int res = a.compareTo(b);
    return res == 0 ? 0 : res/Math.abs(res);
}

相关问题