| 

.NET C# Java Javascript Exception

sort kaskadierend

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


sort kaskadierend

koeberle - 14.07.2009 16:01
Ich mag ja die Möglichkeiten des sort-Closure. Aber wie kann man vernünftig eine Sortierung nach Mehreren Attributen gestaffelt erhalten? Sprich sortiere erst nach Property a und wenn Property a identisch dann nach Property b und so weiter.

Christian


Re: sort kaskadierend

vawalda - 14.07.2009 16:39
Servus Christian,

meinst du sowas:
class ZuSortieren {   
    int a
    int b
    
    String toString() {
        return "($a, $b)"
    }
}

def liste = [new ZuSortieren(a:2, b:1), new ZuSortieren(a:1, b:1), new ZuSortieren(a:2, b:3), new ZuSortieren(a:2, b:2)]
println liste

liste = liste.sort{ x,y ->
    if(x.a == y.a)
        x.b <=> y.b
    else
       x.a <=> y.a 
}

println liste

Ansonsten kann man natürlich eine Klasse auch Comparable machen und die compareTo-Methode entsprechend überschreiben.
Das ist natürlich nicht so flexible wie die sort-Closure.

Gruß Michl


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "sort kaskadierend" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.