gpt4 book ai didi

dart - 如何对 map 值进行排序?

转载 作者:行者123 更新时间:2023-12-02 12:14:22 26 4
gpt4 key购买 nike

我有这张 map :

var temp= { 
'A' : 3,
'B' : 1,
'C' : 2
};

如何对 map 的值进行排序(降序)。我知道,我可以使用 temp.values.toList()..sort()。

但我想在键的上下文中进行排序,如下所示:

var temp= { 
'B' : 1,
'C' : 2
'A' : 3,
};

最佳答案

此示例使用自定义比较函数,该函数使 sort() 按值对键进行排序。然后将键和值插入到 LinkedHashMap 中,因为这种映射保证保留顺序。与 https://stackoverflow.com/a/29629447/217408 基本相同但根据您的用例进行定制。

import 'dart:collection';

void main() {
var temp= {
'A' : 3,
'B' : 1,
'C' : 2
};

var sortedKeys = temp.keys.toList(growable:false)
..sort((k1, k2) => temp[k1].compareTo(temp[k2]));
LinkedHashMap sortedMap = new LinkedHashMap
.fromIterable(sortedKeys, key: (k) => k, value: (k) => temp[k]);
print(sortedMap);
}

试试 DartPad

关于dart - 如何对 map 值进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30620546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com