我用Boat对象填充了一个ArrayList。船上有名字,身份证和分数。我需要将得分,整数与彼此进行比较,并从最低到最高对它们进行排序。
我已经尝试了很多次,但失败了很多,我很难知道该怎么做。
public class Boat {
private String name;
private int id;
private int score;
//Constructor
public Boat(String name, int id, int score) {
this.name = name;
this.id = id;
this.score = score;
}
我找到了比较器课程,但无法弄清楚如何正确使用它。
基本上我需要做的是将分数排序到新的ArrayList中。将它们从我的private ArrayList<Boat> participants;
列表中按降序移动到我的private ArrayList<Boat> sortedScoreList;
列表。
这是我第一次在这里发帖,所以如果我需要添加更多信息,请告诉我。
答案 0 :(得分:1)
使用默认的sort
方法按score
升序排序:
ArrayList<Boat> sortedScoreList = new ArrayList<>(participants);
sortedScoreList.sort(Comparator.comparingInt(Boat::getScore));
使用默认的sort
方法按score
降序排序:
ArrayList<Boat> sortedScoreList = new ArrayList<>(participants);
sortedScoreList.sort(Comparator.comparingInt(Boat::getScore).reversed());
使用蒸汽按score
升序排序:
ArrayList<Boat> sortedScoreList =
participants.stream()
.sorted(Comparator.comparingInt(Boat::getScore))
.collect(toCollection(ArrayList::new));
使用steams按score
降序排序:
ArrayList<Boat> sortedScoreList =
participants.stream()
.sorted(Comparator.comparingInt(Boat::getScore).reversed())
.collect(toCollection(ArrayList::new));