在大多数情况下,地图中只有0-5个参数。我猜TreeMap的占用空间可能较小,因为它比HashMap稀疏。但我不确定。
或者,在这种情况下编写我自己的Map可能更好吗?
答案 0 :(得分:5)
主要区别在于TreeMap
是SortedMap
,而HashMap
则不是。如果您需要对地图进行排序,请使用TreeMap
,否则请使用HashMap
。性能特征和内存使用情况可能会有所不同,但如果您只有0-5个条目,则没有明显的差异。
我不建议您编写自己的地图,除非您需要标准地图中没有的功能,听起来您没有。
答案 1 :(得分:3)
我猜TreeMap可能会更小 足迹,因为它不那么稀疏 然后是HashMap。
这可能实际上是错误的,因为空HashMap
个插槽是null
因此占用的空间很小,TreeMap
个条目的开销高于HashMap
条目,因为儿童指针和颜色标志。
无论如何,如果你有成千上万的这样的地图,那只是一个问题。
答案 2 :(得分:0)
我猜您Map
中的条目不需要订单,因此HashMap
可以为您服务。
5个条目不是性能问题。
您需要编写Map
,其中包含十几种已实施的方法,我认为这不是您所需要的。
答案 3 :(得分:0)
如果您的大约5个键总是相同(或者是一小组键的一部分),并且您通常通过字符串文字查询它们,并且您很少需要真正解析来自用户输入或类似的键,那么你可以考虑使用枚举类型作为EnumMap的键类型。这应该比HashMap更有效。不过,如果您有许多这样的地图,差异只会很重要。