【发布时间】:2019-08-05 09:44:28
【问题描述】:
我有一个要排序的对象列表。但我有三个不同的条件。这就是为什么我有这个代码:
Collections.sort(myList, new Comparator<MyObject>() {
@Override
public int compare(MyObject o1, MyObject o2) {
// my code
}
});
三次。首先将条件为x 的所有元素排序到列表底部。然后第二次将条件为y 的所有元素排序到底部,然后再次为条件z 排序。
现在我想知道如何在一个比较方法中组合多个条件。所以我不必这样做三遍。
编辑:更清楚地了解条件。我想将所有具有x 条件的对象排序到列表的底部。如果一个元素满足y 的条件,它应该甚至低于x,同样适用于z。
【问题讨论】:
-
不清楚你所说的“条件”是什么意思是“排序标准”吗?所以按
x排序,然后按y,然后按z? -
你可以有一个
compareHelper,它接受第三个参数,指示要排序的属性,然后遵从它。不过,我们可能需要查看相关代码才能提出任何建议。至少,您可以使用 lambda 使其更简洁。 -
查看番石榴订购baeldung.com/guava-ordering
-
@SharonBenAsher 我编辑了我的代码。也许这可以清除它。
标签: java sorting comparator