首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >map的dart/颤振更新键

map的dart/颤振更新键
EN

Stack Overflow用户
提问于 2022-10-19 20:12:30
回答 2查看 54关注 0票数 0

我想更新地图的钥匙。我按日期对地图进行排序,但现在键不是按数字顺序排列的。

原始地图:

代码语言:javascript
复制
Map<dynamic, dynamic> myMap = {
    0: {"id": 754, "name": "luke", "date": 1665537500000},
    1: {"id": 436, "name": "obi", "date": 1665532400000},
    2: {"id": 866, "name": "vader", "date": 1665532500000},
  };

myMapSorted = SplayTreeMap.from(myMap, (a, b) => myMap[a]['time'].compareTo(myMap[b]['time']));
print(myMapSorted);

排序映射(键不按数字顺序排列):

代码语言:javascript
复制
{
    1: {"id": 436, "name": "obi", "date":  1665532400000},
    2: {"id": 866, "name": "vader", "date": 1665532500000},
    0: {"id": 754, "name": "luke", "date": 1665537500000}, 
  };

有办法更新钥匙吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-20 17:28:52

如果您发现自己使用的是一个具有连续整数键的Map,并且您不关心插入顺序,那么您应该后退一步,问问自己是否应该使用List,特别是如果您的键也从0开始。使用List更简单,效率更高。

听起来这也适用于你的情况。而不是:

Map myMap ={ 0:{"id":754,“名称”:“路克”,“日期”:1665537500000},1:{"id":436,"name":"obi","date":1665532400000},2:{"id":866,"name":"vader","date":1665532500000},};

用途:

代码语言:javascript
复制
var myMap = <dynamic>[
    {"id": 754, "name": "luke", "date": 1665537500000},
    {"id": 436, "name": "obi", "date": 1665532400000},
    {"id": 866, "name": "vader", "date": 1665532500000},
];

然后您可以直接用以下方法对其进行排序:

代码语言:javascript
复制
myMap.sort((a, b) => a['date'].compareTo(b['date']));

获得:

代码语言:javascript
复制
[
  {'id': 436, 'name': 'obi', 'date': 1665532400000},
  {'id': 866, 'name': 'vader', 'date': 1665532500000},
  {'id': 754, 'name': 'luke', 'date': 1665537500000},
]

现在您不需要担心更新任何Map键,因为它们是List元素的隐式索引。

票数 1
EN

Stack Overflow用户

发布于 2022-10-19 21:02:43

正如ΟυιλιαμΑρκευα所提到的,文章的第二种方法解决了按键排序的问题。

代码语言:javascript
复制
var sortMapByKey = Map.fromEntries(
    myMap.entries.toList()
    ..sort((e1, e2) => e1.key.compareTo(e2.key)));
    
  print("***Sorted Map by key***");
  print(sortMapByKey);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74131356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档