TreeMap не сортирует - PullRequest
       2

TreeMap не сортирует

1 голос
/ 21 ноября 2011
public int compareTo(Object o) {
    Doctor d = (Doctor)o;
    return (doctor_name.compareTo(d.doctor_name));
}

Это мое сопоставимое в классе доктора

jTextArea.setText("");
int doctor_id = Integer.parseInt(jTextField2.getText());
String doctor_name = jTextField3.getText();
String hospitalName = jTextField4.getText();

Doctor d = new Doctor(doctor_id,doctor_name,hospitalName);
hmDoctor.put(doctor_id, d);

Это мой hashmap

а это моя карта дерева

TreeMap<Integer,Doctor> tmDoctor = new TreMap<Integer,Doctor>(hmDoctor);
jTextArea.setText("");
Set keys = tmDoctor.keySet();
Iterator<Integer> ite = keys.iterator();

while(ite.hasNext())
{
    int doctorID = ite.next();
    Doctor d = tmDoctor.get(doctorID);
    tmDoctor.put(doctorID, d);
    jTextArea1.append(d.toString());
}

Это не сортирует имена врачей. Почему?

1 Ответ

10 голосов
/ 21 ноября 2011

TreeMap сортирует элементы по ключам, а не по значениям. В качестве альтернативы вы можете использовать TreeMap<String, Doctor>, индексированный по имени врача. Или, в зависимости от того, что вам нужно сделать, вы можете просто держать врачей в TreeSet.

...