java - 对我的 ArrayList 进行排序的正确方法是什么?

标签 java android sorting arraylist

我有一个名为“ergebnisse”的自定义类,其中包含多个字段,其中之一是类型为 Longscore .

我想对 ArrayList<ergebnisse> 进行排序按分数。 我尝试了很多东西,但大多数都是针对一两列。

ArrayList<ergebnisse> list = new ArrayList<ergebnisse>();
Cursor data = mDatabaseHelper.fetchNamesByConstraint(filter);
while(data.moveToNext()){
    //get the value from the database in column 1
    //then add it to the ArrayList
    String name = data.getString(1);
    String scorestring = data.getString(2);
    Long score=Long.parseLong(scorestring);
    String timestring = data.getString(3);
    Double time= Double.parseDouble(timestring);
    String mode = data.getString(5);
    String game = data.getString(4);
    String levstring = data.getString(6);
    Integer lev=Integer.parseInt(levstring);
    list.add(new ergebnisse(name,score,time,mode,lev,game));
}

我想从最高分到最低分排序。

最佳答案

您可以通过自定义比较函数进行排序:

Collections.sort(
    list,
    (a, b) -> Integer.compare(b.score, a.score)
);

您会注意到 b.scoreInteger.compare 的第一个参数。这颠倒了比较的含义,因此列表将按降序排列。

关于java - 对我的 ArrayList 进行排序的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54371127/

相关文章:

java - 如何在android中获取两个时间差

javascript - 删除字符串数组中的重音符号

java - 在 ajax post 请求中发送特殊字符时出现问题

android - 计算 flexbox 中的行数

Android - 仪表测试期间应用程序的模拟方法

android - 设备锁定一段时间后警报管理器不工作

javascript - 根据日期属性对 javascript 对象进行排序

java - 通过反射根据字段名称对 List<Object> 进行排序

java - Maven:在一个项目中混合使用 Java 和 Scala

java - 带有 setBigDecimal 参数的 Java preparedStatement 引发 ORA-03115