Groovy custom сортирует карту по значению
у меня есть карта, такая как
m=[
"james":"silly boy",
"janny":"Crazy girl",
"jimmy":"funny man",
"georges":"massive fella"
];
Я хочу отсортировать эту карту по ее значению, но игнорируя делу (именно поэтому требуется пользовательская сортировка). Поэтому я решил реализовать пользовательскую сортировку с помощью закрытия. Но я новичок в Groovy и изо всех сил пытаюсь выполнить эту очень простую задачу!
желаемые результаты были бы:
["janny":"Crazy girl", "jimmy":"funny man", "georges":"massive fella", "james":"silly boy"]
спасибо !
3 ответов
предполагая, что вы хотите сортировать по значению, вы можете просто сделать:
Map m =[ james :"silly boy",
janny :"Crazy girl",
jimmy :"funny man",
georges:"massive fella" ]
Map sorted = m.sort { a, b -> a.value <=> b.value }
кстати, вот код, который показывает различную сортировку С и без toLowerCase ():
Map m =[ james :"silly boy",
janny :"crazy girl",
jimmy :"Funny man",
georges:"massive fella" ]
Map sorted = m.sort { a, b -> a.value <=> b.value }
println sorted
sorted = m.sort { a, b -> a.value.toLowerCase() <=> b.value.toLowerCase() }
println sorted
и будет печатать:
[jimmy:Funny man, janny:crazy girl, georges:massive fella, james:silly boy]
[janny:crazy girl, jimmy:Funny man, georges:massive fella, james:silly boy]