Другие говорят, что для создания двоичного дерева поиска с массивом {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);
}
Исключение:
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)
, который из-за линии: set.add(e);
да, вы правы, я понял! – user472221