我想按降序对对象集合进行排序。
下面的代码正在按升序对itemDetails对象进行排序。
Arrays.sort(itemDetails, (a, b) ->
String.valueOf(a.getAvailableQuantity())
.compareTo(String.valueOf(b.getAvailableQuantity())));
但是我希望输出按降序排列。
答案 0 :(得分:2)
切换到(b, a)
:
Arrays.sort(itemDetails, (b, a) ->
String.valueOf(a.getAvailableQuantity())
.compareTo(String.valueOf(b.getAvailableQuantity())));
实际上将名称更改为有意义的名称,以便可以理解排序逻辑
答案 1 :(得分:2)
使用Comparator.comparing
(避免重复String.valueOf
和getAvailableQuantity
)和Comparator.reversed()
(清楚地表明您正在颠倒排序顺序): / p>
Arrays.sort(
itemDetails,
Comparator.comparing((ItemDetails a) -> String.valueOf(a.getAvailableQuantity())).reversed());
其中ItemDetails
是数组元素类型的名称(或某些具有getAvailableQuantity
方法的超类型)。
答案 2 :(得分:1)
添加减号:
Arrays.sort(itemDetails, (a, b) -> -String.valueOf(a.getAvailableQuantity()).compareTo(String.valueOf(b.getAvailableQuantity())));