在Java中对ArrayList <List>进行排序

Bry*_*ceD 3 java arraylist

我有一个ArrayList<List>List■找持有一个名称字符串值,然后双转换为字符串.

例:

List<String> list = New List; 
list.add("Abraham");
list.add(String.valueOf(0.65));

List<String> list2 = New List; 
list2.add("Bowers");
list2.add(String.valueOf(0.89));

ArrayList<List> arrayList = new ArrayList<>();
arrayList.add(list); 
arrayList.add(list2); 
Run Code Online (Sandbox Code Playgroud)

如何ArrayList按双精度值的降序排序?

YMo*_*omb 7

使用Collections.sort(arrayList, instanceOfYourOwnImplemenationOfComparator)具有自定义实施之后Comparator<ArrayList>.

或者更好的是,Java是一种面向对象的语言,因此创建一个专门用于存储String + double的类并使其具有可比性.

class MyClass implements Comparable<MyClass> {
   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));
   }

}
Run Code Online (Sandbox Code Playgroud)