计算Map初始容量算法

在实际开发中经常需要使用到Map,但给Map一个怎样的初始容量比较合理?
众所周知是最接近(要大于)数据长度的2的N次方
那么,如何计算?

欢迎指出错误

/**
 * 计算Map初始容量
 * @author 枫铃也
 * @since 2019-10-09 15:51
 */
public class CapacityUtil {

    private static final double MODULE = 2;

    public static int getCapacityFactor(int size) {
        int n = size;
        int power = 0;
        while (n > 1) {
            power++;
            n >>>= 1;
        }
        int capacity = (int) Math.pow(MODULE, power);
        if (capacity < size || capacity % MODULE != 0) {
            capacity *= MODULE;
        }
        return capacity;
    }
}

欢迎指出错误

发布了4 篇原创文章 · 获赞 3 · 访问量 971

猜你喜欢

转载自blog.csdn.net/qq_18878455/article/details/102496778