Java 双比较器Lambda表达式

Java 双比较器Lambda表达式,java,lambda,integer,double,Java,Lambda,Integer,Double,如何转换此表达式:(i1,i2)->(int)i1-(int)i2 从int到double值 我试过:(i1,i2)->(double)i1-(double)i2,它错了 请帮忙。谢谢。这句话 (i1,i2)->(双)i1-(双)i2 还一双。 比较器必须返回一个整数。 一个解决方案可能是 (i1,i2)->(int)数学符号(i1-i2) 例如 列表l=列表of(3.4,9.3,5.54); l、 排序((i1,i2)->(int)Math.signum(i1-i2)) 注意 (i1,i2)-

如何转换此表达式:
(i1,i2)->(int)i1-(int)i2
从int到double值

我试过:
(i1,i2)->(double)i1-(double)i2
,它错了

请帮忙。谢谢。

这句话

(i1,i2)->(双)i1-(双)i2 还一双。 比较器必须返回一个整数。 一个解决方案可能是 (i1,i2)->(int)数学符号(i1-i2) 例如 列表l=列表of(3.4,9.3,5.54); l、 排序((i1,i2)->(int)Math.signum(i1-i2))

注意 (i1,i2)->(int)(i1-i2)
因为小数字被舍入为零,所以不起作用。

您理解比较器的含义吗? 这里的主要问题(对于数字,如double或int),是根据您决定的比较函数对两个元素(i1、i2)进行排序。 一旦您将返回一个正整数(常用的约定是返回“1”),这意味着第一个对象(i1)更大。一旦返回负值(约定为“-1”),则表示第二个对象(i2)更大。返回“0”后,表示i1和i2相等。 现在在比较器的比较函数中实现排序功能

我猜是这样的:

(i1,i2) -> return i1 > i2 ? 1 : i1 < i2 ? -1 : 0
(i1,i2)->返回i1>i2?1:i1

应该做这项工作。

你能给我们看完整的代码吗?谢谢,现在我得到了这个错误:运算符“-”不能应用于(i1-i2)部分的“java.lang.Object”,“java.lang.Object”-你能发布代码片段吗