对集合中的对象排序

时间:2013-03-14 21:16:34

标签: java collections compare

假设我有一个Employee类

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

Set没有订单。他们就像数学集。

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

您应该从List创建一个Set,然后应用您想要的Comparator。如果您想对其进行重新排序,只需再次应用sort(),使用其他Comparator