登录
首页 >  Golang >  Go问答

可以对地图进行有效排序吗?

来源:stackoverflow

时间:2024-02-27 12:27:26 202浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《可以对地图进行有效排序吗?》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

我知道 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:保留插入顺序的映射。它由哈希表支持来存储值,并通过双向链表来存储排序。

但是仅地图将保留随机键顺序。

到这里,我们也就讲完了《可以对地图进行有效排序吗?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>