sorting - 真的可以对 map 进行排序吗?

标签 sorting go maps

这个问题在这里已经有了答案:





Collect values in order, each containing a map

(7 个回答)


2年前关闭。




我知道 Go 的创建者决定随机化 map 的键,这样人们就不会假设他们的顺序。我想现在可能已经改变了,但我还没有看到任何关于这种情况的文档。

对 Linux 日志函数的调用如下:

 journal.Send(message string, priority Priority, vars map[string]string) error

(来自https://github.com/coreos/go-systemd)

以已知和受控的顺序而不是随机发送变量会很好,但是如果您不能真正对 map 进行排序,我看不出这怎么可能-我见过的所有示例都将键排序到数组中,然后使用数组作为映射键的排序索引进行迭代。

除了重写 journal.Send() 有没有人有任何想法?常规?

最佳答案

您需要使用像 emirpasic/gods 这样的第三方库。 ,它确实实现了:

  • TreeMap :基于红黑树的 map 。键是相对于比较器排序的。
  • Linked Hashmap :保留插入顺序的映射。它由哈希表支持以存储值和双向链表以存储排序。

  • 但是仅 Map 将保留随机键顺序。

    关于sorting - 真的可以对 map 进行排序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58760977/

    相关文章:

    java - 合并过程数组越界

    java - 是否有可能在不知道 Java 中给定用户输入大小的情况下实现插入排序算法?

    c# - 在 C# 中更改 DataTable 中的行的顺序

    go - 如何从 json 中删除字段?

    go - 如何读取传递给采用某种类型的可变参数的函数的所有参数?

    r - SpatialPolygonsDataFrame R中每个多边形的边界框

    algorithm - MERGE SORT 的 DIVIDE 步骤的基本混淆

    go - 如何在递归函数中设置mutex和sync.waitgroup?

    java - 在 Android 中使用来自 Google Places API 的 JSON 响应

    google-maps - Google map -街景静态图像