2017-01-24 2 views
-2

Meine Frage ist ähnlich wie this, aber der eine Hauptunterschied ist, dass die zu sortierenden Werte ganze Zahlen sind. So zum Beispiel, ichGroovy Sortierung einer Karte nach ganzzahligem Wert (höchster Wert zuerst)

def acctressesByHotnessLevel=[ 
     "Jennifer Lawrence":8, 
     "Emma Watson":9, 
     "Felicity Jones":8, 
     "Brie Larson":10 
]; 

Map sorted = acctressesByHotnessLevel.sort { a, b -> a.value <=> b.value } 
sorted.each{ k, v -> println "${k}:${v}" } 

Im Moment habe drucken diese den Wert mit der niedrigsten integer ersten, aber ich mag der höchste Wert zuerst gedruckt werden.

+0

ziemlich lahm Beispielcode ... :-( –

+0

was es lahm ist? – AbuMariam

Antwort

2

Entweder Ihre Art Vergleich tauschen:

Map sorted = acctressesByHotnessLevel.sort { a, b -> b.value <=> a.value } 

Oder verwenden reverseEach:

sorted.reverseEach { k, v -> println "${k}:${v}" } 
Verwandte Themen