知识付费网站建设,银行网站建设方案,wordpress设置略缩图外链图片,市场营销推广策划方案找到一个大于等于目标容量的最小的2的幂次方数#xff0c;常用于实现具有动态扩展能力的数据结构。
示例#xff1a;HashMap的扩容大小机制。
static final int tableSizeFor(int cap) {int n cap - 1;n | n 1;n | n 2;n | n 4;n …找到一个大于等于目标容量的最小的2的幂次方数常用于实现具有动态扩展能力的数据结构。
示例HashMap的扩容大小机制。
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;
}
a. 将n无符号右移一位。b. 对原n和右移后的n进行按位或操作。c. 将结果赋值回n。
这样做的目的是为了确保n的二进制表示中的所有非零位都被设置为1。这是因为每次右移一位后原最高位会被移到次高位并且按位或操作可以保证只要原来的最高位为1那么新的次高位也将变为1。重复这个过程直到所有可能的位置都被覆盖到从而得到大于等于目标容量的最小的2的幂次方数。
当cap 25最后返回32