मेरे परियोजना एक फोनबुक कि उपयोग कर रहा है BSTree<E>। पेड़ की प्रत्येक नोड है BTNode<E>। मुख्य वर्ग में, मैं जोड़ी वर्ग है, जो है के साथ ई की जगह (String name, String number), जब मैं नोड्स परिभाषित करते हैं।
मैं 2 ई प्रकार के बीच तुलना करने के लिए निम्नलिखित तुलनित्र वर्ग है:
import java.util.Comparator;
public class BTNodeComparator<E> implements Comparator<E>
{
public int compare(E a, E b) throws ClassCastException
{
return ((Comparable<E>) a).compareTo(b);
}
}
और मैं में इसका इस्तेमाल करते हैं BSTree<E>।
अब, जब मैं इस कार्यक्रम चलाने के लिए और यह तुलनित्र की बात आती है, यह मेरे त्रुटियों तुलनित्र पर देता है, क्योंकि अब यह दो जोड़े के बीच तुलना
कैसे मैं इस मुद्दे को हल कर सकता हूँ? क्या मैं चाहता हूँ दो जोड़े के नामों के बीच तुलना करने के लिए है?
मेरा बुरा स्पष्टीकरण के लिए खेद है। मेरी अंग्रेज़ी कमज़ोर है।
=========================
संपादित करें:
@Tim: अपने समाधान की कोशिश के बाद यह मुझे इस त्रुटि देता है:
java.lang.NullPointerException
at Pair.compareTo(Pair.java:36) // @ return name.compareTo(pair.getName());
at Pair.compareTo(Pair.java:2) // @ public class Pair implements Comparable<Pair>
at BTNodeComparator.compare(BTNodeComparator.java:24) // @ return (a.compareTo(b));
at BTNodeComparator.compare(BTNodeComparator.java:20) // @ public class BTNodeComparator<E extends Comparable<E>> implements Comparator<E>
at BSTree.search(BSTree.java:285)
at BSTree.insert(BSTree.java:300)
at PhoneBook.main(PhoneBook.java:25)
Btw, मैं इस प्रकार BSTree में BTNodeComparator decleared:
protected Comparator<E> c = new BTNodeComparator();
if (c.compare(target, cursor.getElement()) < 0) cursor = cursor.getLeft();













