制作二叉搜索树会引发异常

use*_*221 0 java binary-tree

其他人说,制作带有数组的二进制搜索树{3,7,1,90,45,67,54,23,...}是很好的.但是TreeSet我的代码会引发异常,我不知道为什么?我的数组列表"array"包含100 objects每个对象都有two fields 1)digit 2)name,我想BST用这些对象的数字字段.请帮助我谢谢.

     TreeSet<Element> set = null;
     set = new TreeSet<Element>();
     for(Element e :array){
         set.add(e);
     }

    Iterator it1 = set.iterator();

    while (it1.hasNext()) {
        Object o1 = it1.next();
        System.out.println(o1);
    }
Run Code Online (Sandbox Code Playgroud)

例外:

Exception in thread "main" java.lang.ClassCastException: OBST.Element cannot be cast to java.lang.Comparable
    at java.util.TreeMap.put(TreeMap.java:542)
    at java.util.TreeSet.add(TreeSet.java:238)
    at OBST.GreedyVersion.<init>(GreedyVersion.java:25)
    at OBST.GreedyVersion.main(GreedyVersion.java:66)
Run Code Online (Sandbox Code Playgroud)

这是因为线: set.add(e);

Fal*_*rri 6

这是一个非常糟糕的问题.在你的另一个问题(和这里),你说你有一个{3,7,1,90,45,67,54,23,...}.但是你宣布你的设置TreeSet<Element> set.那你真的有什么?你有一个整数数组吗?或者它是一个数组Elements

如果它确实是一个元素数组,则错误消息确切地说明了问题所在,您的Element类必须实现 Comparable