2017-01-24 8 views
-2

Мой вопрос похож на this, но одно ключевое различие - это значения, которые нужно отсортировать, это целые числа. Так, например, у меня естьGroovy Сортировка карты по целочисленному значению (самое высокое значение)

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}" } 

Сейчас это выводит значение с наименьшим целым числом первых, но я хочу, самое высокое значение, которое будет напечатано первым.

+0

Довольно хромой пример кода ... :-( –

+0

что хромой об этом? – AbuMariam

ответ

2

либо переставить сравнение сортировки:

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

Или используйте reverseEach:

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