Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是<<;=Java中的运算符是什么意思?_Java_Hashmap_Bit Manipulation_Bit - Fatal编程技术网

什么是<<;=Java中的运算符是什么意思?

什么是<<;=Java中的运算符是什么意思?,java,hashmap,bit-manipulation,bit,Java,Hashmap,Bit Manipulation,Bit,你能解释一下这段代码吗 容量相当于 capacity = capacity << 1; capacity=capacity它相当于capacity=capacity,就像var+=1差不多相当于var=var+1,你在这里看到的(var每次从循环中出来,'capacity'的值都会以更高的幂增加2 与最初一样,它是1,即2^0;但运算(容量不是严格相等的。可能会应用不同的优先规则。@assylias但为什么是2的幂?如果我们采用除法进行散列,并且采用2的幂的mod(例如2^w)我们

你能解释一下这段代码吗

容量相当于

capacity = capacity << 1;

capacity=capacity它相当于
capacity=capacity,就像
var+=1
差不多相当于
var=var+1
,你在这里看到的(
var每次从循环中出来,'capacity'的值都会以更高的幂增加2


与最初一样,它是1,即2^0;但运算(容量不是严格相等的。可能会应用不同的优先规则。@assylias但为什么是2的幂?如果我们采用除法进行散列,并且采用2的幂的mod(例如2^w)我们甚至不考虑最右边的W位……“GEEK的逻辑是做一个重散列和一个掩码,比使用<代码> %>代码快,处理符号(涉及一个分支)@我猜想避免分支预测错过是主要的增益。”@Peter,使用mod对于素数大小的表来说是合理的,因为它可以减少冲突。冲突减少是通过您所解释的位置乱来改进的。java.util.HashMap中的冲突有点昂贵,因为它们会导致缓存丢失…开放地址表通常对于pow2大小的表来说更好,并且冲突更便宜。总的来说,像I多次声明java.util.HashMap
capacity = capacity << 1;