如何通过将其他对象字段保存为索引来按对象字段对 MutableMap 进行排序?
How to sort a MutableMap by object field with saving other object field as index?
我正在 MutableMap
中存储 JSON
加载的对象,以便能够通过它的键获取一个对象(在 JSON
object
中带有 id 字段) :
[{id: 1, name: "Red"}, {id: 2, name: "Green"}]
我正在使用 id
作为索引并且 想要按 name
对 MutableMap
进行排序以获得输出。
我应该使用单独的容器进行映射和输出,还是只用一个容器就可以同时完成两者?
sortByValue 你可以试试,
private fun sortingByValue() {
val map = hashMapOf<Int, String>()
map.put(1, "Red")
map.put(2, "Green")
val result = map.toList().sortedBy { (_, value) -> value }.toMap()
for (entry in result) {
print("key : ${entry.key}")
println("value : ${entry.value}")
}
}
map 使用toList()
.
转换为列表
sortedBy()
用于按value { (_, value) -> value}
对列表进行排序。
我们使用 _ 作为键,因为我们不使用它进行排序。
我们使用 toMap()
将其转换回地图并将其存储在结果中。
我正在 MutableMap
中存储 JSON
加载的对象,以便能够通过它的键获取一个对象(在 JSON
object
中带有 id 字段) :
[{id: 1, name: "Red"}, {id: 2, name: "Green"}]
我正在使用 id
作为索引并且 想要按 name
对 MutableMap
进行排序以获得输出。
我应该使用单独的容器进行映射和输出,还是只用一个容器就可以同时完成两者?
sortByValue 你可以试试,
private fun sortingByValue() {
val map = hashMapOf<Int, String>()
map.put(1, "Red")
map.put(2, "Green")
val result = map.toList().sortedBy { (_, value) -> value }.toMap()
for (entry in result) {
print("key : ${entry.key}")
println("value : ${entry.value}")
}
}
map 使用
toList()
. 转换为列表
sortedBy()
用于按value { (_, value) -> value}
对列表进行排序。 我们使用 _ 作为键,因为我们不使用它进行排序。我们使用
toMap()
将其转换回地图并将其存储在结果中。