【发布时间】:2017-09-17 10:18:14
【问题描述】:
我坚持比较价值观。数组列表由两个对象名称和百分比组成。
public class DataModel {
private String name;
private String dataUsagePercent;
int color;
}
数组列表是
List<DataModel> usageList;
Collections.sort(usageList, new Comparator<DataModel>(){
public int compare(DataModel d1, DataModel d2){
return (d1.getDataUsagePercent()) - Integer.parseInt(d2.getDataUsagePercent()));
}
});
例子:
arraylist 中的 dataUsagePercent 值为 2, 10, 40, 30, 50, 60, 90, 65,55,100.
我必须比较dataUsagePercent 的值。最低的应该在数组列表和前四个类别中的第 0 位
构成 dataUsagePercent 的最高值。此外,其余六个值(构成使用百分比最低)
合并为一个百分比。
比较列表后上述值的输出应包括:
2,10+30+40+50+55+60,65,90,100 means 2, 245,65,90,100
最终列表大小应始终为 5,名称值没有影响
编辑:错过 60。添加到组合值
【问题讨论】:
-
您可以创建另一个 ArrayList 并将所有百分比的副本放入其中,然后使用
Collections.sort(arraylist)。然后抓取四个最高值和最低值,并将其余的相加。这是假设名称对百分比没有影响。 -
您需要实现 Comparable 才能使用 Collections.sort
-
This?
-
60的值在哪里?它既不是作为直接值在最终列表中,也不是求和形成第 5 个值。 -
错过了,现在补充
标签: java list sorting arraylist