java - HashMap 或 TreeMap for Map specifically sized 1

标签 java hashmap treemap

我需要一个 Map尺寸为 1 并开始思考什么是最好的 TreeMapHashMap

我的想法是TreeMap会更好,因为初始化并向 HashMap 添加值将导致它创建一个包含 15 个条目的表,而我相信 TreeMap是一个红黑树实现,在大小为 1 时将只包含一个根节点。

话虽如此,我想这取决于 hashCode/compareTo对于 HashMap 的 key /TreeMap分别。

最终,我认为这在性能方面真的无关紧要,我在考虑最佳实践。我想最好的性能来自自定义一个条目 Map实现,但这有点荒谬。

最佳答案

执行此操作的规范方法是使用 Collections.singletonMap()

很好很简单,前提是您还需要(或者至少不介意)不变性。

是的,它在内部实现为自定义单节点 Map


另外,如果在构造函数中指定 capacity 为 1 和 loadFactor,则可以使用单个存储桶创建 HashMap > 这比你想要放入的元素数量要多。但是在内存方面,这仍然是一种浪费,因为你会有 Entry 数组的开销,Entry 对象和 HashMap 具有的所有其他字段(如加载因子、大小、调整大小阈值)。

关于java - HashMap 或 TreeMap for Map specifically sized 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30865299/

相关文章:

java - 为什么 PrintStream 扩展 FilterOutputStream 而不是 OutputStream?

Java:更改单个基类的子类的行为而不扩展每个子类

java - Elasticsearch java 验证 api

java - 无法接受 json 作为 REST POST 请求中的输入

scala - Scala 中的 TreeMap 键和迭代

java - 使用条件转换 HashMap 中的 Stream

java - 将新字符串添加到 hashmap java

java - 使用我自己的 hashcode 作为 hashmap java

javascript - 在多个 Highcharts 树形图中选择点

java - HashMap 到 csv/excel 很容易吗?