有一张地图。我想扭转它。 dart中有内置功能吗?
{203: 5, 201: 3, 204: 1}
这是我当前的地图。
{204: 1,201: 3:203: 5}
这是我想要获得的结果。
谢谢!
答案 0 :(得分:2)
如果仍然有人需要解决方案,我写了simple library来深入颠倒Map
,Set
和List
。用法很简单,因为deepReverse()
是扩展方法,因此您所需要做的就是导入我的库并在地图上调用该方法:
import 'package:deep_collection/deep_collection.dart';
void main() {
print({203: 5, 201: 3, 204: 1}.deepReverse());
}
答案 1 :(得分:1)
这有效吗? (我在移动设备上,无法测试)
final m = {203: 5, 201: 3, 204: 1};
final reverseM = LinkedHashMap.fromEntries(m.entries.reversed);
print(reverseM);
答案 2 :(得分:0)
我找到了方法。
sort(Map map){
Map newmap;
for(int i =0 ; i< map.lenght ; i++){
String x = map.entries.last.key.toString();
int y = map.entries.last.value;
newmap[x] = y;
map.remove(x);
}
return newmap;
}
答案 3 :(得分:-1)
使用静态扩展方法反转Map
:
import 'package:enumerable/enumerable.dart';
void main() {
final map = {203: 5, 201: 3, 204: 1};
final newMap1 = map.entries.reverse().toMap$1((k) => k.key, (kv) => kv.value);
print(newMap1);
}