假设您有个HashMap,并且知道它将持有的最大元素数量(例如,最多;例如,因为使用枚举作为键,HashMap<EnumType, Integer> countPerEnumType;因此您知道最大可能的元素数量将是EnumType.values().length),那么您是否可以指定初始容量和该HashMap的负载因子?为什么不)?
如果可以的话,我认为负载系数可以是1?(安全吗?还是有副作用?)
初始容量是length,length/loadFactor还是(length/loadFactor) + 1(即,当HashMap填满时,还是当其填满并且下一个元素将要插入时,将对其进行扩展?
您将如何设置哈希图以防止为空存储桶调整大小和浪费内存?
编辑:该示例使用Enums,Lew Bloch建议使用EnumMap(之前我改掉了这个问题)-但是,假设键不是枚举,但您仍然知道预先要包含的元素数量?
请改用一个为枚举键专门设计EnumMap的高性能Map:
Map<EnumType, Integer> counts = new EnumMap<>();
Run Code Online (Sandbox Code Playgroud)