hashmap中初始化容量大小,获取大于等于cap的、最接近cap的2的次方的数

例如:cap = 3,返回结果 4
  1. cap = 6,返回结果 8
  2. cap = 7,返回结果 8
  3. cap = 8,返回结果 8

int tableSizeFor(int cap) 
{
        int n = cap - 1;
        n |= n >>> 1;
        n |= n >>> 2;
        n |= n >>> 4;
        n |= n >>> 8;
        n |= n >>> 16;
        return (n < 0) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1;
    }


本博客所有文章如无特别注明均为原创。作者:天泓评测
分享到:更多

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)