按升序对 Hashset 对象进行排序
Sorting Hashset Object in ascending order
我有两个 User
List
对象,合并:
objectList1.addAll(objectList2);
为避免重复转换为 HashSet
:
Set<User> users = newHashSet(objectList);
如何根据名字对用户进行升序排序?
我尝试使用 TreeSet
代替 HashSet
,但会抛出 Exception
.
不让 User
class 实现,如何实现结果
Comparable<User>
?
实施比较接口。 https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html
或者使用比较器。
https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html
两者都应该有效。问题是如果 Set 不知道如何比较两个元素,它就不知道如何对自己进行排序。
假设你想在你的用户上使用比较器,你可以这样定义一个:
Comparator<User> comparator = new Comparator<User>() {
@Override
public int compare(User u1, User u2) {
return u1.name.compareTo(u2.name);
}
};
我有两个 User
List
对象,合并:
objectList1.addAll(objectList2);
为避免重复转换为 HashSet
:
Set<User> users = newHashSet(objectList);
如何根据名字对用户进行升序排序?
我尝试使用 TreeSet
代替 HashSet
,但会抛出 Exception
.
不让 User
class 实现,如何实现结果
Comparable<User>
?
实施比较接口。 https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html
或者使用比较器。 https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html
两者都应该有效。问题是如果 Set 不知道如何比较两个元素,它就不知道如何对自己进行排序。
假设你想在你的用户上使用比较器,你可以这样定义一个:
Comparator<User> comparator = new Comparator<User>() {
@Override
public int compare(User u1, User u2) {
return u1.name.compareTo(u2.name);
}
};