Java 按集合的一个属性对集合进行排序

Java 按集合的一个属性对集合进行排序,java,set,Java,Set,我有一组这样的用户 Set<User> users = new HashSet<User>(); Set users=new HashSet(); 用户包含名字、姓氏和年龄。我需要根据名字对用户进行排序。我怎样才能做到这一点呢?你不能。哈希集(如哈希映射)是无序的 改用a。它根据元素的顺序排列元素,或使用显式 您可以使用以下内容: Comparator<User> firstNameComparator = new Comparator<User&g

我有一组这样的用户

Set<User> users = new HashSet<User>();
Set users=new HashSet();
用户包含名字、姓氏和年龄。我需要根据名字对用户进行排序。我怎样才能做到这一点呢?

你不能。哈希集(如哈希映射)是无序的


改用a。它根据元素的顺序排列元素,或使用显式

您可以使用以下内容:

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);
Comparator firstnameparator=new Comparator(){
@凌驾
公共整数比较(用户u1、用户u2){
返回u1.getFirstName().compareTo(u2.getFirstName());
}
};
Set usersSorted=新树集(firstNameComparator);
usersSorted.addAll(用户);

Collections.sort(用户,新的Comparator(){//Implementation});我认为Collections.sort对集合不起作用,只对列表起作用。您可以使用“TreeSet”而不是HashSet,并在构造函数中提供一个比较器。当你遍历集合时,它总是有序的。Bret是对的。Collections.sort在集合上不起作用。