どうも、ちょげ(@chogetarou)です。
DartでMapを値でソートする方法を紹介します。
方法

Mapを値でソートするには、SplayTreeMapを使います。
具体的には、SplayTreeMapをfromでインスタンス化します。
fromの第1引数にはソートするMap、第2引数にはcompareToを使ったマップの値の比較式を指定します。
//mapを値でソート
var sortedValue = new SplayTreeMap.from(map, (key1, key2) => map[key1].compareTo(map[key2]));
SplayTreeMapには、ソートされたマップが格納されます。
使用例
import 'dart:collection';
void main() {
var map = {
'Two' : 2,
'Four' : 4,
'Three' : 3,
'Five' : 5,
'One' : 1,
};
var sortedValue = SplayTreeMap<String, int>.from(map, (key1, key2) => map[key1]!.compareTo(map[key2]!));
print(sortedValue); //{One: 1, Two: 2, Three: 3, Four: 4, Five: 5}
}
コメント