-2

假设我有一个 Employee 类

Employee {
    int id;
    String name;
    Date DOB;
}

我创建了 100 个对象并将它们放入 Set 中,但希望它们今天按 DOB 排序,其他一天按 name 排序,其他一天按 id 排序。我可以创建三个比较器,但不确定我应该在哪里传递这些比较器,因为 Collections.sort 将 List 作为第一个参数。
TreeSet(接受 Comparator 作为构造函数)是唯一的解决方案吗?

4

2 回答 2

0

Sets 没有订单。它们就像数学集。

如果你想要一个订单,你需要一个List,例如。然后你可以对它们进行排序,或者给它们你想要的任何顺序。

List您应该从中创建一个Set,然后应用Comparator您想要的。如果您想对它们重新排序,只需sort()再次申请,使用不同的Comparator.

于 2013-03-14T21:23:20.130 回答
0

TreeSet是一个总是根据一些比较器排序的集合。所以你可以有三个不同的集合,每个集合都有自己的比较器。

于 2013-03-14T21:18:39.323 回答