1.参考阿里巴巴开发规范

2.写了个工具类 供大家参考
import java.util.HashMap;
/**
* 阿里巴巴开发规范
* 【推荐】 集合初始化时, 指定集合初始值大小。
* 说明: HashMap 使用 HashMap(int initialCapacity) 初始化,如果暂时无法确定集合大小, 那么指定默
* 认值( 16) 即可。
* 正例: initialCapacity = (需要存储的元素个数 / 负载因子) + 1。 注意负载因子(即 loader factor) 默认
* 为 0.75,如果暂时无法确定初始值大小,请设置为 16(即默认值) 。
* 反例: HashMap 需要放置 1024 个元素,由于没有设置容量初始大小,随着元素不断增加,容量 7 次被迫
* 扩大, resize 需要重建 hash 表。当放置的集合元素个数达千万级别时,不断扩容会严重影响性能。
*
* @author xyqq
* @version 1.0
* @date 2023/9/12
*/
public class CollectionUtil {
private static final float INITIAL_LOAD_FACTOR = 0.75f;
/**
* 生成一个具有指定大小的 HashMap。
*
* @param size 期望存储的数据大小
* @param 键的类型
* @param 值的类型
* @return 初始化后的 HashMap
*/
public static <K, V> HashMap<K, V> newHashMap(int size) {
if (size <= 0) {
throw new IllegalArgumentException("Size must be greater than zero.");
}
// 计算初始化容量,向上取整
int initialCapacity = (int) Math.ceil(size / INITIAL_LOAD_FACTOR + 1);
return new HashMap<>(initialCapacity);
}
}