如何在飞镖中反转地图?有内置功能吗

时间:2019-05-11 11:30:58

标签: dart

有一张地图。我想扭转它。 dart中有内置功能吗?

{203: 5, 201: 3, 204: 1}

这是我当前的地图。

{204: 1,201: 3:203: 5}

这是我想要获得的结果。

谢谢!

4 个答案:

答案 0 :(得分:2)

如果仍然有人需要解决方案,我写了simple library来深入颠倒MapSetList。用法很简单,因为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);
}