moin MrWurf :)
hier also mein Vorschlag:
Soweit ich dich verstanden habe, willst du eine Menge von Order-Objekten ausgeben, in der keine Order doppelt vorkommen soll. Ausserdem sollen die Orders noch irgendwie sortiert werden.
Ohje - nein - da hast du mich falsch verstanden :/ bzw. habe ich die falschen Ausdrücke verwendet.
Ich möchte zwei Order-Objekte nur auf Gleichheit testen (wie ich gelernt habe ist das nicht gleichzusetzen mit "vergleichen")
Dazu nehme ich einfach mal an: (korrigiere mich wenn ich falsch liege)
- die Orders haben eine eindeutige Bestellnummer,
richtig
- die Orders haben ein Datumseintrag, nach dem du sortieren willst,
falsch - es gibt keinerlei Ordnung in den Orderobjekten.
Zum Sortieren implementierst du das Comparable-Interface an der Order, und sortierst die Values der oben gefüllten Hashtable mit
Vector sortme = new Vector(orderhash.values());
Collections.sort(sortme);
Der Vector sortme enthält nun die eindeutigen sortierten Orders.
Dieser Sachverhalt ist mir bei den User-Objekten über den Weg gelaufen - aber gelöst habe ich ihn anders. Und zwar habe ich mir eine Klasse UserComparator gebastelt, die ich so aufrufe: Collections.sort(users, new UserComparator(orderByDesc));
"users" ist hier die Liste die schliesslich die sortierten User enthält.
Nur der Vollständigkeit halber möchte ich hier noch meine Comparator-Klasse zeigen. Falls ihr hier Unstimmigkeiten findet, sagt mir doch bitte bescheid (bin jetzt ein wenig verunsichert wegen deines Lösungsweges)
public class UserComparator implements Comparator {
private String orderBy;
public static final String ORDERBY_NAME= "name";
public static final String ORDERBY_NUMBER = "number";
public UserComparator(String attribute) {
this.orderBy = attribute;
}
public int compare(Object o1, Object o2) {
if (o1 != null && o2 != null && orderBy != null && o1 instanceof User
&& o2 instanceof User) {
if (ORDERBY_NUMBER.equals(orderBy)) {
return ((User) o1).getNumber().compareTo(((User) o2).getNumber());
}
else if (ORDERBY_NAME.equals(orderBy)) {;
return ((User) o1).getNumber().compareTo(((User) o2).getNumber());
}
}
return 0;
}
}
liebe Grüße aus Berlin
lina-
Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)