_栖凤_ 2021-07-24 22:39 采纳率: 100%
浏览 37
已结题

TreeSet 集合 为什么我的重写接口Comparable的方法compareTo 传的参数是Object 不能改变?无法实现想要的目的

package com.company;
import java.util.*;
public class Main {
    public static void main(String[] args) {
        TreeSet<Student> treeSet = new TreeSet<>();
        Student s1 = new Student(18, "xishi");
        Student s2 = new Student(20, "wangzhaojun");
        Student s3 = new Student(22, "diaocan");
        Student s4 = new Student(23, "yanyuhuan");

        treeSet.add(s1);
        treeSet.add(s2);
        treeSet.add(s3);
        treeSet.add(s4);

        for (Student s : treeSet) {
            System.out.println(s.getName() + ":" + s.getAge());
        }
    }
}
//学生类
public class Student implements Comparable{
    public int age;
    public String name;
//........
@Override
    public int compareTo(Object o) {
        return 0;
    }
}

img

目的 是对学生对象遍历,
要求:按照年龄从大到小排序,年龄相同时按照姓名的字母进行排序
如图,我把compareTo 的参数该为Student时会报错
那这样如何实现我要的目的呢?我看到视频,为什么他的可以改,他默认的参数就是Student

  • 写回答

1条回答 默认 最新

  • 曦陽惜夏 2021-07-25 10:55
    关注

    使用泛型的形式,就不是object了

        class Entity implements Comparable<Entity>{
            private String id;
            private String name;
            public String getId() {
                return id;
            }
            public void setId(String id) {
                this.id = id;
            }
            public String getName() {
                return name;
            }
            public void setName(String name) {
                this.name = name;
            }
            @Override
            public int compareTo(Entity o) {
                return 0;
            }
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月29日
  • 已采纳回答 7月25日
  • 创建了问题 7月24日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装