gpt4 book ai didi

java - 使用 Java Collections 最大化按人名排序的数据结构的效率

转载 作者:行者123 更新时间:2023-11-29 10:11:48 26 4
gpt4 key购买 nike

我需要一个由人名映射的数据结构,这意味着必须存储重复的键。我希望有 log(n) 次(最多)用于插入、删除和搜索。

理想情况下,我会有一个由唯一标识符映射的哈希表,该标识符将在插入时生成。通过这样做,我可以在恒定时间内插入。使用辅助有序平衡树,每个条目都是对哈希表中条目的引用,我将能够在对数时间内按名称搜索/删除,并在线性时间内打印所有条目,按名称排序。

有没有办法通过重用可用的集合在 Java 中做到这一点?或者至少是具有类似复杂性的解决方案...

this question ,建议用一个Map来解决这个问题。但是据我了解,没有 Map 可以正确处理重复的键。

最佳答案

如果我对问题的理解正确,您需要一个 MultiMap。 Guava 中有一些实现和 Commons-Lang ,或者您可以使用例如自己推出一个 HashMap(或者 TreeMap,如果你怀疑你的 .hashCode() 实现太慢或太差,但我会首先进行基准测试)和一个 List 或 Set 实现作为值类型。

请注意,如果您想迭代基于名称顺序的值,您最好使用基于树的多重映射:如果名称已经是键,您的顺序将是无需执行任何其他操作。

关于java - 使用 Java Collections 最大化按人名排序的数据结构的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31290681/

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