参见英文答案 > Sort ArrayList of custom Objects by property 25个
我有一个ArrayList< List>其中Lists具有包含名称的字符串值,然后将double转换为字符串.
例:
List list = New List;
list.add("Abraham");
list.add(String.valueOf(0.65));
List list2 = New List;
list2.add("Bowers");
list2.add(String.valueOf(0.89));
ArrayList arrayList = new ArrayList<>();
arrayList.add(list);
arrayList.add(list2);
如何按双精度值的降序对ArrayList进行排序?
解决方法:
在使用Comparator< ArrayList>的自定义实现后,使用Collections.sort(arrayList,instanceOfYourOwnImplemenationOfComparator).
或者更好的是,Java是一种面向对象的语言,因此创建一个专门用于存储String double的类并使其具有可比性.
class MyClass implements Comparable {
private String word;
private double score;
MyClass(String word, double score) {
this.word = word;
this.score = score;
}
@Override
public int compareTo(MyClass o) {
return (int) Math.round(Math.signum(score - o.score));
}
}
标签:java,arraylist
来源: https://codeday.me/bug/20190722/1502288.html