有关的描述 初始能力 和 负载系数 ,见 HashMap中加载因子的意义是什么?
如果使用数组,则可能会比使用地图时使用更少的内存。但在大多数情况下,易用性和可读性远比内存使用重要。
也可以看看 哈希映射内存开销 描述 HashMap 内存使用情况。
HashMap
首先,是的,创建一个映射对于非常少量的数据有一些内存开销。它为给定的负载容量/负载因子创建带有Entry包装类的数组。所以,你可能会浪费几个字节,但是在千兆字节大小的内存时代,这只会在你创建数百万甚至数十亿的地图时出现问题,这取决于你实际给你的应用程序提供多少内存以及什么它必须管理的其他事情。
如果我知道收集将保持非常小并且我还没有使用密钥,我有时只使用列表,因为无论如何检查2或4个元素是非常快的。最后,在他们占用大量可用内存之前,甚至不用担心这些小事情。