我想问问两个用户在排序时是相等的是什么意思啊,要用到哪方面的知识,没有思路了,怎么做呀,谢谢了
package Answer7731784;
import java.util.ArrayList;
import java.util.Collections;
class User implements Comparable<User> {
private String username;
private String password;
private int role;
protected User(String username, String password, int role) {
super();
this.username = username;
this.password = password;
this.role = role;
}
@Override
public int compareTo(User o) {
return username.compareTo(o.username);
}
@Override
public String toString() {
return "\nUser [username=" + username + ", password=" + password + ", role=" + role + "]\n";
}
}
public class Answer{
public static void main(String[] args) {
ArrayList<User> list = new ArrayList<>();
User user1 = new User("b", "123", 0);
list.add(user1);
User user2 = new User("b", "4567", 0);
list.add(user2);
Collections.sort(list);//排序
System.out.println("两个user对象"+(user1.compareTo(user2)==0?"相等":"不相等"));
System.out.println(list);//打印排序结果
}
}
自定义类 实现Comparable接口 重写compareTo方法
两个用户在排序时是相等的:这个表述有问题,既然是排序,那排序的结果是有顺序的,不是相等的。
他想表达的意思是:两个用户的username相同时,排序结果是并列的。比如都是第2。
用到的方法是String的equals方法
用户在排序时是相等。当用户名全等时,认为他们的排名是相等的。名次是一样的。就像成绩相等一样,名次是一样的