有没有办法将compareTo与double一起使用?爪哇

时间:2018-12-17 14:32:37

标签: java

我想知道是否可以将arraylist中的两个double元素与compareTo进行比较?我已经尝试过类似的方法,但是每个人都知道我会收到错误消息,但是如果可能的话,我仍然想使用这个compareTo。

prekiuArray.stream().sorted((p1, p2) -> p1.getPrice().compareTo(p2.getPrice())).forEach(p -> System.out.printf("%s%n", p));

2 个答案:

答案 0 :(得分:4)

double是原始类型,没有任何方法。 Double(盒装版本)实现了Comparable,因此您可以在其上使用compareTo,也可以使用Double.compare(double d1, double d2)来比较基元

解决此问题的最佳方法根本不涉及lambda。您可以使用Comparator.comparingDouble并将其传递给方法引用:

... .stream().sorted(Comparator.comparingDouble(MyClass::getPrice)) ...
如果Comparator.comparing返回了装箱的comparingDouble,请使用

getPrice而不是Double,以避免不必要地将其拆箱。

答案 1 :(得分:3)

您可以这样做

<button id="buttonid" onClick="myFunction()">