【发布时间】:2018-11-16 23:44:07
【问题描述】:
我有这样的名称和金额的充值计划列表
Top-Up 80
Add-On 56
Add-on 60
Top-Up 20
Recharge 45
Top-Up 121
Add-On 9
Recharge 34
我希望这样的排序输出
Add-On 9
Add-On 56
Add-On 60
Recharge 34
Recharge 45
Top-Up 20
Top-Up 80
基于名称排序和基于数量的子排序。 我试过了,但没有得到预期的结果。
Collections.sort(rechargePlans, (o1, o2) -> {
String x1 = ((RechargePlan) o1).getRechargeShortDesc();
String x2 = ((RechargePlan) o2).getRechargeShortDesc();
int sComp = x1.compareTo(x2);
if (sComp != 0) {
return sComp;
}
Integer x11 = ((RechargePlan) o1).getRechargeAmountInteger();
Integer x22 = ((RechargePlan) o2).getRechargeAmountInteger();
return x11.compareTo(x22);
});
在应用基于数量的排序时,我丢失了字母排序顺序。
【问题讨论】:
-
我在应用基于数量的排序时丢失了字母排序顺序
-
persons是什么类型的数据结构?什么级别?你的排序代码在我看来很好,所以此时你应该给我们一些可重现的东西。 -
名称和简短描述是否不同?看来您的代码会首先按简短描述排序(我没有看到其中的错误),当然,这不会给您按字母顺序对名称进行排序。 MCVE,好吗?
-
名称和简述相同
-
List
充值计划是集合
标签: java android sorting arraylist collections