Flutter

Flutter之map排序

2020-05-13  本文已影响0人  Maybe_G

有个需求需要对map里面的数据按照key的首字母排序。
网上搜到的解决办法:

List<String> keys = map.keys.toList();
    // key排序
    keys.sort((a, b) {
      List<int> al = a.codeUnits;
      List<int> bl = b.codeUnits;
      for (int i = 0; i < al.length; i++) {
        if (bl.length <= i) return 1;
        if (al[i] > bl[i]) {
          return 1;
        } else if (al[i] < bl[i]) return -1;
      }
      return 0;
    });

但是以前代码仅仅是把map中的key按照字母排序生成了一个新的List。
还需要进行一步操作才能实现我们的需求:

//new一个map按照keys的顺序将原先的map数据取出来就可以了。
var treeMap = Map();
    keys.forEach((element) {
      treeMap[element] = map[element];
    });
上一篇下一篇

猜你喜欢

热点阅读