如何在Java中按点对Highscore-ArrayList进行排序

时间:2016-11-06 11:38:27

标签: java sorting arraylist

如何按点(最高的第一个)

对ArrayList“highscoreList”进行排序

这是一个高分

public class Highscore {
  private String name;
  private int points;
  private Date date;

这是我的清单

ArrayList<Highscore> highscoreList;

2 个答案:

答案 0 :(得分:0)

Collections.sort方法有一个可选的Comparator变量:

Collections.sort(highscoreList, new Comparator<Highscore>(){
                     public int compare(Highscore h1,Highscore h2){
                           // Write your logic here.
                     }});

当然,你可以编写一个实现Comparator的实际类,上面只是一个简写。

答案 1 :(得分:0)

您必须使用Collections.sort()并覆盖其compare()方法:

Collections.sort(highscoreList, new Comparator<>() {
    @Override
    public int compare(Highscore h1,Highscore h2) {
        return h2.getPoints() - h1.getPoints();
    }
});

compare()方法的主体说明了如何比较Highscore类的实例。假设points是主要和唯一标准,请将它们与getter一起使用。

由于您使用h2.getPoints() - h1.getPoints(),因此按降序排序。要实现升序,只需将compare()方法的正文更改为:h1.getPoints() - h2.getPoints()