我有一个班的学生有以下领域:
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;
字段“状态”可以有2个值:1。现在,2。缺席的
然后我有一个可观察的列表:
private ObservableList<Student> allStudentsWithStatus = FXCollections.observableArrayList();
因此,我将学生存储在这个列表中。每个学生都有出席或缺席状态。
我需要按状态对这个观察列表进行排序。我希望目前状态的学生在该列表中名列第一。
有什么建议吗?
如果有任何帮助,我将不胜感激。
1.您可以创建自定义比较器:
class StudentComparator implements Comparator<Student> {
@Override
public int compare(Student student1, Student student2) {
return student1.getStatus()
.compareTo(student2.getStatus());
}
//Override other methods...
}
或者像这样创造
Comparator<Student> studentComparator = Comparator.comparing(Student::getStatus);
然后使用一个:
ObservableList<Student> allStudentsWithStatus = ...
Collections.sort(allStudentsWithStatus, studentComparator);
或者像这样使用
allStudentsWithStatus.sort(studentComparator);
2.使用SortedList(javafx.collections.transformation.SortedList)
SortedList<Student> sortedStudents = new SortedList<>(allStudentsWithStatus, studentComparator);
3.使用流API和Comparator,如果您需要执行其他操作或需要收集到其他集合(最慢的方式):
allStudentsWithStatus.stream()
.sorted(Comparator.comparing(i -> i.getStatus()))
//other actions
//.filter(student -> student.getLastName().equals("Иванов"))
.collect(Collectors.toList());
//.collect(Collectors.toSet());
问题内容: 如果我有一个JavaScript对象,例如: 有没有一种方法可以基于值对属性进行排序?这样我最终 问题答案: 将它们移动到一个数组,对该数组进行排序,然后将其用于您的目的。这是一个解决方案: 拥有数组后,您可以按自己喜欢的顺序从数组中重建对象,从而完全实现了您打算要做的事情。在我所知道的所有浏览器中都可以使用,但这取决于实现的怪癖,并且可能随时中断。您永远不应假设JavaScript对
当我对它进行降序排序时,它应该首先显示Parent3,因为它有一个Z。这是我当前的hql,它得到了1>2>3的错误结果: 如果没有distinct,尽管它选择了多个相同的父级,但它仍然很好。 我有一个模型设置如下: 编辑:在集合中按HQL顺序对其进行排序,尽管当双亲具有相同的children.name值时,它不会比较下一个可能的值。即。 如果Parent1有孩子abba,zeon Parent2有
问题内容: 我已经使用AJAX获得了以下对象并将它们存储在数组中: 如何仅使用JavaScript 创建一个函数以按属性 升序 或 降序 对对象进行排序? 问题答案: 按价格升序对房屋进行排序: 或在ES6版本之后:
问题内容: 我需要通过PHP脚本中的“得分”值对此类信息进行排序,该怎么办?: PS:这已经在PHP值中,我已经使用了json_decode。* 问题答案: 当这个样子的: 您可以用来对数组进行排序: 输出:
问题内容: 如何按其字段之一(例如或)对对象数组进行排序? 问题答案: 使用usort,这是从手册改编而成的示例: 您还可以将任何callable用作第二个参数。这里有些例子: 使用匿名函数(来自PHP 5.3) 从班级内部 使用箭头函数(来自PHP 7.4) 另外,如果要比较数字值,则应使用“比较”功能。
问题内容: 我有一个带有几个键值对的对象数组,我需要根据’updated_at’对它们进行排序: 这样做最有效的方法是什么? 问题答案: 您可以使用。 这是一个例子: