按升序对 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);
   }
};