sorting - 真的可以对地图进行排序吗?
问题描述
我知道 Go 的创建者决定随机化地图的键,这样人们就不会假设他们的顺序。我想现在可能已经改变了,但我还没有看到任何关于这种情况的文档。
对 Linux 日志函数的调用如下:
journal.Send(message string, priority Priority, vars map[string]string) error
(来自https://github.com/coreos/go-systemd)
以已知和受控的顺序而不是随机发送变量会很好,但如果你不能真正对地图进行排序,我看不出这是怎么可能的——我见过的所有示例都将键排序到一个数组中,然后使用数组作为映射键的排序索引进行迭代。
journal.Send()
除了重写例程之外,有没有人有任何想法?
解决方案
您将需要使用像这样的第三方库emirpasic/gods
,它确实实现了:
- TreeMap:基于红黑树的地图。键是相对于比较器排序的。
- Linked Hashmap:保留插入顺序的映射。它由哈希表支持以存储值和双向链表以存储排序。
但是仅 Map 将保留随机键顺序。
推荐阅读
- html - 如何使用 flex 创建布局?
- pandas - 为什么当我使用 b.iloc[10:20] = b.iloc[20:30] 时会变空?
- java - 跨域servlet理论问题
- angular - 带有模拟结构指令的角度测试组件失败
- python - 修复csv文件中的数据
- javascript - 使用带有 JS 函数名称的 onClick 传递 var
- android - Picasso 不从 url 加载 imageView
- extjs - 悬停时:如何在 Extjs 的 textarea 字段中显示带有复制选项的工具提示
- .net - 从 Code Fluent 迁移到 Entity Framework (.net)
- javascript - 为什么带有 FormData 对象的 PUT 请求未发送到 Laravel 控制器?