我需要一个 Map
尺寸为 1 并开始思考什么是最好的 TreeMap
或 HashMap
?
我的想法是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/