我想知道是否可以将arraylist中的两个double元素与compareTo进行比较?我已经尝试过类似的方法,但是每个人都知道我会收到错误消息,但是如果可能的话,我仍然想使用这个compareTo。
prekiuArray.stream().sorted((p1, p2) -> p1.getPrice().compareTo(p2.getPrice())).forEach(p -> System.out.printf("%s%n", p));
答案 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()">