按其属性之一对集合进行排序

时间:2015-02-02 17:23:44

标签: java set

我有一组像这样的用户。

Set<User> users = new HashSet<User>();

用户包含名字,姓氏和年龄。我需要根据名字对用户进行排序。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

你不能。 HashSets(如HashMaps)是无序的。

请改用TreeSet。它会根据natural ordering或使用明确的comparator对元素进行排序。

答案 1 :(得分:0)

您可以使用以下内容:

Comparator<User> firstNameComparator = new Comparator<User>() {
    @Override
    public int compare(User u1, User u2) {
        return u1.getFirstName().compareTo(u2.getFirstName());
    }
};

Set<User> usersSorted = new TreeSet<User>(firstNameComparator);
usersSorted.addAll(users);