按其属性之一对集合进行排序
Sort a set by one of its attributes
我有一组这样的用户。
Set<User> users = new HashSet<User>();
用户包含名字、姓氏和年龄。我需要根据名字对用户进行排序。我怎样才能做到这一点?
你不能。 HashSet(如 HashMap)是无序的。
使用 TreeSet instead. It orders elements according to their natural ordering, or using an explicit comparator。
你可以这样使用:
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);
我有一组这样的用户。
Set<User> users = new HashSet<User>();
用户包含名字、姓氏和年龄。我需要根据名字对用户进行排序。我怎样才能做到这一点?
你不能。 HashSet(如 HashMap)是无序的。
使用 TreeSet instead. It orders elements according to their natural ordering, or using an explicit comparator。
你可以这样使用:
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);