Java: 高效列表排序
Java: Effizient List Sorting
我有一个 List
包含可变数量的对象(通常超过 1000 个)。这些对象具有某些属性,例如价格和距离(均为 int)。
现在我希望能够将 List
从最便宜到最昂贵 或 从最近到最远排序,但我不知道如何实现这个。我已经尝试让我的对象实现 Comparable
,但这只能让我按其中一个属性排序...我如何根据不同的属性排序?
创建 Comparator
的两个不同实现 - 一个比较价格,一个比较距离。
然后您可以使用 Collections.sort(List, Comparator)
使用您想要的任何排序策略对列表进行排序。
您应该只使用 Collections.sort(...)
并为每种类型的排序实现自定义比较器,例如按价格。
Collections.sort(effizientObjects, new Comparator<EffizientObject>() {
@Override public int compare(EffizientObject p1, EffizientObject p2) {
return p1.price- p2.price;
}
});
我有一个 List
包含可变数量的对象(通常超过 1000 个)。这些对象具有某些属性,例如价格和距离(均为 int)。
现在我希望能够将 List
从最便宜到最昂贵 或 从最近到最远排序,但我不知道如何实现这个。我已经尝试让我的对象实现 Comparable
,但这只能让我按其中一个属性排序...我如何根据不同的属性排序?
创建 Comparator
的两个不同实现 - 一个比较价格,一个比较距离。
然后您可以使用 Collections.sort(List, Comparator)
使用您想要的任何排序策略对列表进行排序。
您应该只使用 Collections.sort(...)
并为每种类型的排序实现自定义比较器,例如按价格。
Collections.sort(effizientObjects, new Comparator<EffizientObject>() {
@Override public int compare(EffizientObject p1, EffizientObject p2) {
return p1.price- p2.price;
}
});