为了账号安全,请及时绑定邮箱和手机立即绑定

更改地图的迭代顺序

更改地图的迭代顺序

慕标5832272 2022-12-28 16:21:24
如何以特定的所需顺序遍历 Map?我目前有一个 HashMap 并希望能够定义特定的迭代顺序。订单应该能够由用户更改。我的第一个想法是使用 LinkedHashMap,因为它会给我一个条目顺序,但遗憾的是,实现只按插入顺序或访问顺序对它们进行排序。除了使用删除操作插入顺序外,我认为 LinkedHashMap 不适合这项任务。Imo 实现有点不符合文档所说的内容。我还找到了 SortedMap,但它使用了一个比较器,所以每次我想迭代条目时都需要对其进行评估。这可能是一个解决方案,但有点昂贵:O(n*log(n))。到目前为止,Andreas 评论似乎是最好的解决方案,它同时具有 HashMap 和 ArrayList。
查看完整描述

3 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

将 LinkedHashMap 转换为 ArrayList,然后切换值。然后转换回 LinkedHashMap。O(n) 的空间和时间复杂度。



查看完整回答
反对 回复 2022-12-28
?
杨魅力

TA贡献1811条经验 获得超6个赞

这个问题的正确答案是你使用了不正确的数据结构,这样你就不必重新排序了。



查看完整回答
反对 回复 2022-12-28
?
PIPIONE

TA贡献1829条经验 获得超9个赞

如果您想要一个键值对并且希望它具有 ArrayList 的属性,那么您可以尝试

List<Pair<String, String>> ?


查看完整回答
反对 回复 2022-12-28
  • 3 回答
  • 0 关注
  • 74 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信