“线程中的异常”;“主要”;java.lang.ClassCastException:setcollection.EnSignant不能强制转换为java.lang.Compariable

“线程中的异常”;“主要”;java.lang.ClassCastException:setcollection.EnSignant不能强制转换为java.lang.Compariable,java,exception,Java,Exception,线程“main”java.lang.ClassCastException中的异常: setcollection.EnSignant无法强制转换为java.lang.Compariable 公共类测试{ /** *@param指定命令行参数 */ 公共静态void main(字符串[]args){ nseignant e=新的nseignant(); Ensignant e1=新的Ensignant(1,“bargaoui”、“Haytem”); Ensignant e2=新Ensignant(1

线程“main”java.lang.ClassCastException中的异常: setcollection.EnSignant无法强制转换为java.lang.Compariable

公共类测试{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
nseignant e=新的nseignant();
Ensignant e1=新的Ensignant(1,“bargaoui”、“Haytem”);
Ensignant e2=新Ensignant(12,“islem”、“ben ahmed”);
System.out.println(e1.toString());
System.out.println(e2.toString());
System.out.println(e1等于(e2));
TreeSet TreeSet=新树集();
Enseignant E1=新Enseignant(1,“穆罕默德”、“本·布拉希姆”);
Ensignant E2=新的Ensignant(2,“imed”,“rouabi”);
Enseignant E3=新的Enseignant(3,“萨利姆”,“阿里”);
Enseignant E4=新的Enseignant(4,“zayneb”,“sassi”);
Enseignant E5=新的Enseignant(5,“khalid”、“louati”);
Enseignant E6=新的Enseignant(6,“hatem”、“himadi”);
树集。添加(E1);
树集。添加(E2);
树集。添加(E3);
树集。添加(E4);
树集添加(E5);
树集。添加(E6);
System.out.println(treeset.contains(E4));
System.out.println(treeset.contains(E1.getId());
System.out.println(treeset.remove(E6));
迭代器迭代器=treeset.Iterator();
//树上的装饰
System.out.println(“树集元素”);
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
}

线程“main”java.lang.ClassCastException中的异常:

由于您使用的是树集,因此将进行一些比较,并且需要一个比较器

你可以做两件事

  • 在Ensignant中实现可比性
  • 公共类EnSignant实现了可比较的{
    ...
    公共内部比较(Ensignant其他){
    //在这里比较
    返回0;
    }
    ...
    }
    
  • 在创建树集时添加比较器
  • TreeSet TreeSet=new TreeSet(new Comparator(){
    公共整数比较(ENSIGNANT e1、ENSIGNANT e2){
    //在这里进行比较。
    返回0;
    }
    });
    
    谢谢你,但是我可以在树集合中添加object Ensignat.,,,,,?@haythembargaoui:他刚才确实告诉过你了。您需要执行他提到的两项操作之一,才能将
    Enseignant
    对象添加到树集中。
    public class Test {
    
        /**
        * @param args the command line arguments
        */
        public static void main(String[] args) {
            Enseignant e=new Enseignant();
            Enseignant e1=new Enseignant(1,"bargaoui","haythem");
            Enseignant e2=new Enseignant(12,"islem","ben ahmed");
            System.out.println(e1.toString());
            System.out.println(e2.toString());
            System.out.println(e1.equals(e2));
            TreeSet<Enseignant> treeset = new TreeSet<Enseignant>(); 
            Enseignant E1=new Enseignant(1,"mohamed","ben brahim");
            Enseignant E2=new Enseignant(2,"imed","rouabi");
            Enseignant E3=new Enseignant(3,"salim","ali");
            Enseignant E4=new Enseignant(4,"zayneb","sassi");
            Enseignant E5=new Enseignant(5,"khalid","louati");
            Enseignant E6=new Enseignant(6,"hatem"," himadi");
    
    
            treeset.add(E1);
            treeset.add(E2);
            treeset.add(E3);
            treeset.add(E4);
            treeset.add(E5);
            treeset.add(E6);
            System.out.println(treeset.contains(E4));
            System.out.println(treeset.contains(E1.getId()));
            System.out.println(treeset.remove(E6));
            Iterator iterator = treeset.iterator();
    
            // afficher tous les éléments de TreeSet
            System.out.println("éléments de TreeSet");     
            while (iterator.hasNext()){
            System.out.println(iterator.next());
            }
        }
    }
    
    public class Enseignant implements Comparable<Enseignant> {
    ...
      public int compareTo(Enseignant other) {
        // Compare here
        return 0;
      }
    ...
    }
    
    TreeSet<Enseignant> treeset = new TreeSet<>(new Comparator<Enseignant>(){
      public int compare(Enseignant e1, Enseignant e2) {
        // Compare here.
        return 0;
      }
    });