¿Cuál es la forma correcta de ordenar mi ArrayList?

Tengo una clase personalizada llamada "ergebnisse" con varios campos, uno de ellos es la puntuación de tipo Long.

Quiero ordenar un ArrayList<ergebnisse>por puntaje. Intenté muchas cosas, pero la mayoría son de una o dos columnas.

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));
}

Quiero ordenar de mayor a menor puntaje.

Respuesta 1

Puede pasar una función de comparación personalizada para ordenar:

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

Notarás que b.scorees el primer argumento para Integer.compare. Eso invierte el significado de la comparación para que la lista esté en orden descendente.

Respuesta: 2

Estoy creando una web con Spring que permitirá al usuario ver los repositorios, sus problemas y agregar nuevos problemas si lo desea. El problema aparece cuando el usuario quiere crear un nuevo problema. Yo obtengo "...

Tengo un formulario que toma un nombre de usuario y lo pasa a LoginServlet.java que a su vez: Si no hay sesión: crea una sesión para ese nombre de usuario y reenvía la solicitud a LoginResultView.jsp que ...

¿Se requiere la regla de potencia de 2 en Andengine GLES2, o fue solo para GLES1? Sé que se recomienda crear su BitmapTextureAtlas con valores de ancho y alto como potencia de 2, 512x512 para ...

Estoy interesado en conocer el funcionamiento de ResultSet en profundidad. Tengo muchas dudas sobre ResultSet. como el rendimiento en cuanto a cuál es mejor. while (rs.next ()) {// itera tan bien como ...