我是編程的初學者,我有兩個類。第一類是:如何重寫compareTo(Java)
public class User implements Comparable<User>
與現場int age
,構造函數和接口可比的overrided方法:
@Override
public int compareTo(User user) {
return user.age >= age ? -1 : 0;
}
第二類是 public class SortUser
與從列表中進行設置收集方法:
public Set<User> sort(List<User> list) {
Set<User> result = new TreeSet<>();
for (User user : list) {
result.add(user);
}
return result;
}
在我看來,Set中的所有User
對象都應該排序,但是當我做出List機智H 3 User
對象...
User a = new User(1);
User b = new User(2);
User c = new User(3);
List<User> list = new ArrayList<>();
list.add(c);
list.add(a);
list.add(b);
(現在列表的順序爲:312
) ...創造從列表中選擇一個Set
(TreeSet
):
SortUser sortUser = new SortUser();
Set<User> set = sortUser.sort(list);
最後我有一個set
與該訂單:13
,這意味着set
中只有兩個對象。出了什麼問題?
我不會將它添加到一組排序。只需在列表中調用'sort'即可。 – Carcigenicate
你不能有一個排序集。集合是無序集合。 sort()方法需要對List(或其他有序集合)進行排序,或返回List。 – chrisdowney
@chrisdowney那麼,從技術上說,你*可以*有一個有序的集合。您只需確保具體的實現支持它。它非常有可能編寫一個有序集合實現。 – Carcigenicate