我有一個結構,它是一個Map
,其中包含對:String=>Map
。 有沒有一種方法來排序這個地圖(根)多個值?實施例是清楚的:按價值中的多個字段排序地圖(地圖作爲值)
輸入:
"A" => {name: "John", age: "47"}
"B" => {name: "Sam", age: "60"}
"C" => {name: "Josh", age: "30"}
"D" => {name: "Tom", age: "15"}
"E" => {name: "Josh", age: "31"}
排序:
//group 1
"A" => {name: "John", age: "47"}
//group2
"C" => {name: "Josh", age: "30"}
"E" => {name: "Josh", age: "31"}
//group3
"B" => {name: "Sam", age: "60"}
//group4
"D" => {name: "Tom", age: "15"}
輸出地圖排序由name
第一,通過age
然後(排序的組內)。 我可以通過單個地圖值條目進行排序,但是我無法找到一個簡單(偏)的方式來按多個條目排序(按給定順序)。我可以嘗試在每種排序之後拆分這個結構,應用下一級排序並在最後加入所有內容,但我正在尋找更多奇特的解決方案(如果有的話)。
任何想法?
使用'collections.sort'和一個'Comparator>' –
如果我明白你有'Map>'。使用自定義類代替內部映射比如'Map ' –
Simon