按值按升序和降序对ObservableList <Class>进行排序 - JAVAFX

Jav*_*mer 2 sorting javafx observablelist

我有一个具有playerName和Score的类,我在Controller类中创建了这个类的ObservableList.玩家和分数将添加到此阵列中.但问题是如何根据分数对其进行排序?

ObservableList<PlayerScore> playerScores = FXCollections.observableArrayList();
Run Code Online (Sandbox Code Playgroud)

这是它到目前为止的样子:

//stateACS is a toggle button
if (stateASC.isSelected()) {
    //Sort in asc order by player score
    FXCollections.sort(playerScores);
}else{
    //sort in desc order by player score

}
Run Code Online (Sandbox Code Playgroud)

fab*_*ian 6

就像按给定标准对任何列表排序一样:通过使用a Comparator,例如:

// assuming there is a instance method Class.getScore that returns int
// (other implementations for comparator could be used too, of course)
Comparator<Class> comparator = Comparator.comparingInt(Class::getScore); 
if (!stateASC.isSelected()) {
    comparator = comparator.reversed();
}
FXCollections.sort(playerScores, comparator);
Run Code Online (Sandbox Code Playgroud)

顺便说一句:Class由于名称冲突,类名是一个糟糕的选择java.lang.Class.