2017-06-13 57 views
1

地圖通過嵌套映射值我有這樣的地圖:排序在Groovy

def mapToSort = [one:[count:10], two:[count:20], three:[count:30]] 

而且要對它進行排序按照由子圖屬性「伯爵」這樣的結果應該是:

[three:[count:30], two:[count:20], one:[count:10]] 

我想這沒有成功:

mapToSort.sort{ a, b -> b.value.count <=> a.value.count } 
mapToSort.sort{ -it.value.count } 
+1

我想你試了一下'mapToSort.sort {A,B - > b.value.count <=> a.value.count}'是正確的。你能告訴我們這個操作的輸出是什麼?當我嘗試使用groovy控制檯時,它會給出正確的結果 –

回答

1

您排序的邏輯是確定的,但結果是一個新的有序映射。試試這個:

def sortedMap = mapToSort.sort{ a, b -> b.value.count <=> a.value.count } 
println sortedMap