weixiaoliyyds 2022-06-10 22:50 采纳率: 40%
浏览 16
已结题

Student对象的TreeSet集合

img

package Test;

import java.util.Comparator;
import java.util.TreeSet;

public class TreeSetDemo {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    TreeSet<Student> t = new TreeSet<Student>() ;
    Student S1 = new Student(1,"张1");
    Student S2 = new Student(2,"李4");
    Student S3 = new Student(3,"王5");
    Student S4 = new Student(3,"赵6");
    t.add(S1);
    t.add(S2);
    t.add(S3);
    t.add(S4);
    for(Student s:t) {
        System.out.println(s.toString());
    }
    }

}
class Student implements Comparator{
private int id;
private String name;
public Student(int id,String name) {
// TODO Auto-generated constructor stub
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
return obj.equals(this.id);
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
return this.id;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "id:"+id+",name:"+name;
}
@Override
public int compare(Student s1, Student s2) {
// TODO Auto-generated method stub
if(s1.id==s2.id) {
return 0;
}else if(s1.id>s2.id) {
return -1;
}else {
return 1;
}
}
}package Test;

import java.util.Comparator;
import java.util.TreeSet;

public class TreeSetDemo {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    TreeSet<Student> t = new TreeSet<Student>() ;
    Student S1 = new Student(1,"张1");
    Student S2 = new Student(2,"李4");
    Student S3 = new Student(3,"王5");
    Student S4 = new Student(3,"赵6");
    t.add(S1);
    t.add(S2);
    t.add(S3);
    t.add(S4);
    for(Student s:t) {
        System.out.println(s.toString());
    }
    }

}
class Student implements Comparator{
private int id;
private String name;
public Student(int id,String name) {
// TODO Auto-generated constructor stub
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
return obj.equals(this.id);
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
return this.id;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "id:"+id+",name:"+name;
}
@Override
public int compare(Student s1, Student s2) {
// TODO Auto-generated method stub
if(s1.id==s2.id) {
return 0;
}else if(s1.id>s2.id) {
return -1;
}else {
return 1;
}
}
}

出现了问题:
Exception in thread "main" java.lang.ClassCastException: class Test.Student cannot be cast to class java.lang.Comparable (Test.Student is in unnamed module of loader 'app'; java.lang.Comparable is in module java.base of loader 'bootstrap')
at java.base/java.util.TreeMap.compare(TreeMap.java:1291)
at java.base/java.util.TreeMap.put(TreeMap.java:536)
at java.base/java.util.TreeSet.add(TreeSet.java:255)
at Test.TreeSetDemo.main(TreeSetDemo.java:15)

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 6月18日
    • 创建了问题 6月10日

    悬赏问题

    • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
    • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
    • ¥20 关于web前端如何播放二次加密m3u8视频的问题
    • ¥15 使用百度地图api 位置函数报错?
    • ¥15 metamask如何添加TRON自定义网络
    • ¥66 关于川崎机器人调速问题
    • ¥15 winFrom界面无法打开
    • ¥30 crossover21 ARM64版本安装软件问题
    • ¥15 mymetaobjecthandler没有进入
    • ¥15 mmo能不能做客户端怪物