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;
    }
});