【发布时间】:2015-03-23 15:28:44
【问题描述】:
我有一个ObservableList<Auftrag>,其中包含一些数据。
private ObservableList<Auftrag> data = FXCollections.observableArrayList();
// add some test data
data.add(new Auftrag("AB1", "Car 1",1));
data.add(new Auftrag("AB1", "Car 2",22));
data.add(new Auftrag("AB1", "Car 3",2));
data.add(new Auftrag("AB2", "Fruit A",33));
data.add(new Auftrag("AB2", "Fruit B",45));
data.add(new Auftrag("AB3", "Music 1",101));
data.add(new Auftrag("AB3", "Music 2",102));
data.add(new Auftrag("AB3", "Music 3",103));
现在我想返回一个按第三个数据参数 (int) ASC 排序的有序列表。我通过设置比较器尝试使用SortedList,但没有运气。
老实说,关于排序和过滤的文档有点“过滤”;) 我喜欢了解 Comparator 和 Predicate 的使用...对于初学者...
到目前为止,我尝试将ObservableList 放入sortedList 并与比较器一起玩。 getDaysTillDelivery() 是 Auftrag 模型中的一个函数,它返回 int 值。
SortedList<Auftrag> sorted = data.sorted();
sorted.setComparator(new Comparator<Auftrag>() {
@Override
public int compare(Auftrag arg0, Auftrag arg1) {
return arg0.getDaysTillDelivery() > arg1.getDaysTillDelivery() ? arg0.getDaysTillDelivery(): arg1.getDaysTillDelivery();
}
});
通过使用谓词,我不知道使用google 找到的现有示例。
任何帮助都会很棒。
【问题讨论】: