&是什么LT;< =运算符在Java中意味着什么? [英] What does <<= operator mean in Java?

查看:141
本文介绍了&是什么LT;< =运算符在Java中意味着什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

能否请您解释这一code段<一个href=\"http://grep$c$c.com/file/repository.grep$c$c.com/java/root/jdk/openjdk/6-b14/java/util/HashMap.java#HashMap\"相对=nofollow> HashMap的构造专行


  

&能力LT;&LT; = 1:


  //找到2  - 电源=参数:initialCapacity
198 INT容量= 1;
而199(容量&LT;参数:initialCapacity)
200容量和LT;&LT; = 1;


解决方案

这是等同于容量=能力和LT;&LT; 1; 结果
该操作位移量的位一个位置的左边,这相当于乘以2

您发布的具体code发现2的最小功率比参数:initialCapacity

所以,如果参数:initialCapacity 27,例如,容量将在循环之后是32(2 ^ 5)

Can you please explain this code snippet from HashMap constructor specifically the line

capacity <<= 1:

// Find a power of 2 >= initialCapacity
198         int capacity = 1;
199         while (capacity < initialCapacity)
200             capacity <<= 1;

解决方案

It is equivalent to capacity = capacity << 1;.
That operation shifts capacity's bits one position to the left, which is equivalent to multiplying by 2.

The specific code you posted finds the smallest power of 2 which is larger than initialCapacity.

So if initialCapacity is 27, for example, capacity will be 32 (2^5) after the loop.

这篇关于&是什么LT;&LT; =运算符在Java中意味着什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆