Hallo Leute,
ich bin am verzweifeln. Ich versuche nun schon seit einiger Zeit, eine TreeMap mit einem selbst definierten Comparator zu basteln. Aber ich bekomme immer nur ein StackOverflowError. Kann mir jemand sagen was ich in meinem (vereinfacht und verkürzten) Code falsch mache:
Ich seh's einfach nicht mehr..
ich bin am verzweifeln. Ich versuche nun schon seit einiger Zeit, eine TreeMap mit einem selbst definierten Comparator zu basteln. Aber ich bekomme immer nur ein StackOverflowError. Kann mir jemand sagen was ich in meinem (vereinfacht und verkürzten) Code falsch mache:
Code:
import java.util.Comparator;
import java.util.TreeMap;
class Person implements Comparable<String> {
public String mName = null;
public int mAlter = 0;
public Person (String pName, int pAlter) {
mName = pName;
mAlter = pAlter;
}
public int compareTo(String pObj) {
return mName.compareTo(pObj);
}
}
class Teilnehmer implements Comparator<String> {
TreeMap<String, Person> mTeilnehmer = null;
public Teilnehmer () {
mTeilnehmer = new TreeMap<String, Person> (this);
}
public void put (String pName, Person pPerson) {
mTeilnehmer.put(pName, pPerson);
}
public void output () {
for (Person lPerson : mTeilnehmer.values())
System.out.println(lPerson.mName);
}
public int compare(String pObj1, String pObj2) {
String lName1 = mTeilnehmer.get(pObj1).mName;
String lName2 = mTeilnehmer.get(pObj2).mName;
return lName1.compareTo(lName2);
}
}
public class TreeMapSorting {
public static void main (String[] args) {
Teilnehmer lTeilnehmer = new Teilnehmer();
lTeilnehmer.put("5", new Person("Harald", 12));
lTeilnehmer.put("4", new Person("Sina", 14));
lTeilnehmer.put("3", new Person("Alex", 10));
lTeilnehmer.put("2", new Person("Peter", 7));
lTeilnehmer.put("1", new Person("Caro", 7));
lTeilnehmer.output();
}
}
Ich seh's einfach nicht mehr..