gpt4 book ai didi

java - TreeMap 会自动对键进行排序吗?

转载 作者:行者123 更新时间:2023-12-01 19:27:34 26 4
gpt4 key购买 nike

在使用 HashMap 存储 Player 对象和 Integer 时,我在对 HashMap 进行排序时遇到了困难,建议使用 TreeMap,在阅读了一些文档后,它似乎根据放置的键对映射进行排序英寸。

所以理论上,如果我制作 TreeMap,它会为我对 map 进行排序?

最佳答案

是的,如果您调用yourmap.keySet().iterator(),它会根据键按升序返回元素。这要么是它们的自然顺序,要么是您定义的比较器。在内部,它可能会使用 Inorder-Traversal像这样:
https://en.wikipedia.org/wiki/Tree_traversal

您会看到,在每个节点的左子树上,值较小,而在右侧子树上,值较大。因此,如果您首先在左侧列出元素,然后是节点本身,然后全部在右侧,则按升序排列。如果您递归地对每个节点应用此规则,您将收到所需的迭代器。

您可以找到有关如何在 Java 中使用它的示例 here .

请记住,HashMap 的查找时间为 O(1),但 TreeMap 的查找时间为 O(log(n))。除非您依赖键的顺序,否则您应该选择 HashMap,因为它更快。

关于java - TreeMap 会自动对键进行排序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61048702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com