1、Users源码
import java.util.Objects;
/***
 * 自定义类
 */
public class Users implements Comparable<Users>{
    private String userName;
    private int UserAge;
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public int getUserAge() {
        return UserAge;
    }
    public void setUserAge(int userAge) {
        UserAge = userAge;
    }
    /***
     * 自定义类
     * @param userName  姓名
     * @param userAge   年龄
     */
    public Users(String userName, int userAge) {
        this.userName = userName;
        UserAge = userAge;
    }
    /***
     * 自定义类
     */
    public Users() {
    }
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Users users = (Users) o;
        return UserAge == users.UserAge &&
                Objects.equals(userName, users.userName);
    }
//    @Override
//    public String toString() {
//        return "Users{" +
//                "userName='" + userName + '\'' +
//                ", UserAge=" + UserAge +
//                '}';
//    }
    @Override
    public int hashCode() {
        return Objects.hash(userName, UserAge);
    }
    //定义比较规则
    @Override
    public int compareTo(Users o) {
        //年龄排序
        if(this.UserAge > o.UserAge)
            return 1;
        //年龄相同姓名比较
        if(this.UserAge == o.UserAge)
            return this.userName.compareTo(o.getUserName());
        return 0;
    }
}2、TreeMapTest源代码
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class TreeMapTest {
    public static void main(String[] args) {
        //实例化TreeMap
        Map<Users,String> tree = new TreeMap<>();
        //实例化Users
        Users u1 = new Users("张三",15);
        Users u2 = new Users("王五",23);
        Users u3 = new Users("陈述",63);
        tree.put(u1,"无法言语");
        tree.put(u2,"难过");
        tree.put(u3,"绝对");
        Set<Users> keys = tree.keySet();
        for(Users i : keys)
            System.out.println(i + "--------" + tree.get(i));
    }
}3、结果运行图
 1)不注释toString

 2)注释toString

这是什么情况?为什么会出现这种情况?
而且单纯修改一下比较规则还会出现新问题
4、修改截图

5、运行截图

其他两个就没有了?