Wie kann ich eine ArrayList nach zwei Kriterien sortieren?

3 Antworten

Naja, was macht denn ein Komparator in Java? Der gibt -1 zurück, wenn der erste Parameter "kleiner" ist als der zweite, 0 wenn er gleich ist oder 1, wenn er größer ist.

Was größer oder kleiner bedeutet, kannst Du doch selbst bestimmen. Du könntest also sowas machen wie:

// Sortierung nach Häufigkeit, wenn diese eindeutig ist
if (a.häufigkeit < b.häufigkeit) return -1;
if (a.häufigkeit > b.häufigkeit) return 1;

// Falls gleiche Häufigkeit: Sortierung nach Alphabet
return a.zeichen.compareTo(b.zeichen);