我有一个名为Student的类,包含以下字段:
private int id;
private String firstName;
private String lastName;
private String imageLink;
private String email;
private String status;
private String fullName;
private int classId;
private int percentage;
Button changeAttendanceButton;
ImageView attendanceImage;
ImageView photo;
字段"status"有两个可能的值: 1. present, 2. absent。
然后我有一个Observable List:
private ObservableList<Student> allStudentsWithStatus = FXCollections.observableArrayList();
我在这个列表中存储学生。每个学生都有出席或缺席的状态。
我需要按照状态对此ObservableList进行排序。我希望具有出席状态的学生首先出现在列表中。
有什么提示吗?
如果您能提供任何帮助,我将不胜感激。
List.sort(Comparator)
方法和合适的Comparator
。合适的Comparator
是基于status
返回一个值的Comparator
。另外,因为你使用了ObservableList
,可以查看SortedList。 - SlawallStudentsWithStatus.sort(Comparator.comparing(Student::getStatus))
来原地对列表进行排序,或者使用SortedList<Student> sortedStudents = new SortedList<>(allStudentsWithStatus, Comparator.comparing(Student::getStatus));
。在任一情况下,将Comparator.comparing(Student::getStatus)
替换为Comparator.comparing(Student::getStatus).reversed()
以反转顺序。 - James_D