热门

最新

红包

立Flag

投票

同城

我的

发布
dekudekuku
八月份的天气
5 年前
truedekudekuku

HaspMap数组扩容机制是2的冥次方
那当我们自定义数组的大小时,他是需要实现将我们自定义的大小向上转换为2的冥次方
tableSizeFor方法很好的解决了这个问题
| 按位或运算
>>> 位运算,高位补0
static final 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;
}

CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条:
互动起来,熟悉的背景,熟悉的音乐。
立即登录