Telefonbuch Implementation mit Java Collections

Klumpenmann

Mitglied
Habe versuch ein sotiertes Telefonbuch zu implementieren, welches Elemente der Klasse Person enthält.
Dabei muss nach Nachnamen sortiert werden. Sind diese gleich nach Vornamen.
Habe versucht dies mit einer TreeMap zu schaffen.
Dort habe ich als Key den Nachnamen genohmen und als Value eben die Klasse Person:

Java:
public class Person {

	private String nachname;
	private String vorname;
	private long nummer;

	public Person(String nachname, String vorname, long nummer) {
		super();
		this.nachname = nachname;
		this.vorname = vorname;
		this.nummer = nummer;
	}

Java:
@Test
	public void Telefonbuch() {

		TreeMap<String, Person> buch = new TreeMap<String, Person>();
		buch.put("Klier", new Person("Klier", "Dieter", 86887));
		buch.put("Schmidt", new Person("Schmidt", "Tim", 86130));
		buch.put("Kaiser", new Person("Kaiser", "Peter", 86310));
		buch.put("Umbrecht", new Person("Umbrecht", "Karl", 89013));
		buch.put("Ümit", new Person("Ümit", "Serdar", 83456));
		buch.put("Klier", new Person("Klier", "Sabrina", 86777));
		System.out.println(buch);

Nachnamen sind dann schon sortiert, allerdings werden Einträge mit gleichem Key überschrieben.
In diesem Fall also "Klier". Wie umgehe ich dieses Problem, Ist etwas anderes als TreeMap besser? Und wenn ja wie sortiere ich sonst so ein Telefonbuch? :autsch:
 
Bei dem Beispiel: TreeMap<String, List<Person>>
müsste der Key dann aus Vor -und Nachnamen bestehen... ?
Schafft TreeMap es den auch Umlaute richtig zu sortieren?
 
was ist der Unterschied zwischen TreeMap<String, Person> und TreeMap<String, List<Person>>?
ist es nicht offensichtlich, dass letzteres mehrere Personen zu einem String sammeln kann?
spricht das nicht eine klare Sprache, ob ein super eindeutiger Key benötigt wird oder auch einer mit mehreren Personen dazu denkbar ist?

was Sortierung betrifft: ausprobieren? 😉
 

Zurück
Oben