[英]Sorting ObservableList understanding Comparator and Predicate
I have an ObservableList<Auftrag>
which contains some data. 我有一个
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));
Now I'd like to return an ordered list which is ordered by the third data parameter (int) ASC
. 现在,我想返回一个有序列表,该列表由第三个数据参数(int)
ASC
排序。 I tried by using the SortedList
by setting a comparator but without luck. 我尝试通过设置比较器来使用
SortedList
,但是没有运气。
I'm honest the documentation about Sorting and Filtering is a bit "filtered" ;) I like to understand the Comparator and Predicate use...for beginners... 老实说,关于排序和过滤的文档有点“过滤”;)我想了解比较器和谓词的用法...供初学者使用...
What I tried so far is to put the ObservableList
into a sortedList
and played with the comparator. 到目前为止,我尝试将
ObservableList
放入sortedList
并与比较器一起播放。 getDaysTillDelivery() is a function in Auftrag model which returns the int value. 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();
}
});
By using predicate I had no clue using existing examples found by google
. 通过使用谓词,我无法使用
google
找到的现有示例。
Any help would be great thx. 任何帮助将是巨大的。
sorted.setComparator(new Comparator<Auftrag>() {
@Override
public int compare(Auftrag arg0, Auftrag arg1) {
return arg0.getDaysTillDelivery() > arg1.getDaysTillDelivery() ? arg0.getDaysTillDelivery(): arg1.getDaysTillDelivery();
}
});
That won't work. 那行不通。
And what is unclear about the documentation of Comparator
? 尚不清楚
Comparator
的文档? Quoting the javadoc itself about the compare()
method reads (emphasis mine): 引用javadoc本身有关
compare()
方法的内容如下(强调我的意思):
Compares its two arguments for order.
比较其两个参数的顺序。 Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second .
当第一个参数小于,等于或大于第二个参数时,返回负整数,零或正整数 。
That is clear enough to me. 这对我来说很清楚。
Your comparator should read (note: Java 8 code) 您的比较器应阅读(注意:Java 8代码)
sorted.setComparator(Comparator.comparing(Auftrag::getDaysTillDelivery));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.