G
Guest
Gast
Hallo,
ich besitze einige Objekte vom Typ Book. Diese Bücher möchte ich nun sortiert in ein Objekt vom Typ TreeSet packen. Dazu übergebe ich dem TreeSet Konstruktor ein Objekt vom Typ Comparator. Durch dieses Vorgehen werden meine Bücher also sortiert nach dem Titel in das TreeSet hinzugefügt. Dazu zwei Fragen:
1.)
Kann ich das auch irgendwie eleganter als im Quellcode unten umsetzen? Muss ich mir hierzu einen eigenen Comparator schreiben (sowie unten geschehen)?
2.)
Wenn ich das richtig verstanden habe, braucht man bei einer natürlichen Ordnung keinen Comparator. Handelt es sich hier um eine natürliche Ordnung?
[/code]
ich besitze einige Objekte vom Typ Book. Diese Bücher möchte ich nun sortiert in ein Objekt vom Typ TreeSet packen. Dazu übergebe ich dem TreeSet Konstruktor ein Objekt vom Typ Comparator. Durch dieses Vorgehen werden meine Bücher also sortiert nach dem Titel in das TreeSet hinzugefügt. Dazu zwei Fragen:
1.)
Kann ich das auch irgendwie eleganter als im Quellcode unten umsetzen? Muss ich mir hierzu einen eigenen Comparator schreiben (sowie unten geschehen)?
2.)
Wenn ich das richtig verstanden habe, braucht man bei einer natürlichen Ordnung keinen Comparator. Handelt es sich hier um eine natürliche Ordnung?
Code:
public class Testklasse
{
public static void main(String[] args)
{
TreeSet<Book> booksSortedByTitle =
new TreeSet<Book> (new MeinComparator("title"));
}
}
Code:
public class Book
{
private String title;
...
}
Code:
public class MeinComparator implements Comparator
{
String sortString;
public MeinComparator(String sortString)
{
this.sortString = sortString;
}
public int compare(Book o1, Book o2)
{
String string1 = o1.get(sortString);
String string2 = o2.get(sortString));
return (string1.compareTo(string2));
}
public boolean equals(Object o)
{
return this == o;
}
}
[/code]