gpt4 book ai didi

java: map 动物园,选择什么

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:05:08 28 4
gpt4 key购买 nike

我是 Java 世界的新手(因为我主要用 C/C++ 编写)。我在我的应用程序中使用 map 。由于 java.util.Map 是抽象的,我需要实例化它的实现。通常我使用 HashMap 像:

Map<String, MyClass> x = new HashMap<>();

但在 java 文档中我发现了很多其他的实现,比如 TreeMap, LinkedHashMap, HashTable 等。我想知道我是否可以继续盲目地使用 HashMap,否则这些 Map 实现之间存在任何重要差异。

要点的简要列表就可以了。谢谢。

最佳答案

  • 永远不要为 Hashtable 烦恼,它是 Java 1.0 的产物;
  • HashMap 是通用默认值,因为 O(1) 查找和仅依赖于 equalshashCode,保证为所有实现Java 对象;
  • TreeMap 为您提供对 map 条目的排序迭代(还有更多内容 - 请参阅 NavigableMap),但需要比较策略并且插入和查找速度较慢 – O( logN) – 比 HashMap;
  • LinkedHashMap 在遍历条目时保留插入/访问顺序。

SortedMap 实现提供了一些很棒的功能,例如 headMaptailMapNavigableMap 实现提供了更多功能,并且对于假定已排序键的操作具有出色的性能。

此外还有 java.util.concurrent 映射实现,例如 ConcurrentHashMap,它提供了出色的并发性能和原子获取/放置操作。

关于java: map 动物园,选择什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13974115/

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