kotlin中对HashMap的排序和java中有些不同
java
重写Comparator
Map<String, String> map = new HashMap<String, String>();
map.put("c", "ccccc");
map.put("a", "aaaaa");
map.put("b", "bbbbb");
map.put("d", "ddddd");
List<Map.Entry<String,String>> list =
new ArrayList<Map.Entry<String,String>>(map.entrySet());
Collections.sort(list,new Comparator<Map.Entry<String,String>>() {
//升序排序
public int compare(Entry<String, String> o1,
Entry<String, String> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
kotlin
val scopeMap = HashMap<String,Int>()
scopeMap["c"] = 72
scopeMap["a"] = 85
scopeMap["b"] = 80
scopeMap["d"] = 70
//正序
val mapSort = scopeMap.entries.sortedBy { it.value }
.associateBy ({ it.key }, { it.value } )
//倒叙
val mapDescSort = scopeMap.entries.sortedByDescending { it.value }
.associateBy ({ it.key }, { it.value } )