当查看Java HashMap的源代码时,我看到了以下代码:
while (capacity < initialCapacity) capacity <<= 1;
但是我在Google.I上找不到关于<<=操作符的文档,我知道<<操作符。有什么帮助吗?
发布于 2012-03-11 15:01:26
这是一个左移赋值,它几乎等同于:
capacity = capacity << 1;
(如+=
/ -=
/等)
发布于 2012-03-11 15:02:04
它和+=
一样,都是移位和赋值。
在您的示例中,capacity
将被分配给自己,左移一位,直到它到达initialCapacity
。它在operators page上。
发布于 2012-03-11 15:02:39
a <<= b
只是左移然后赋值的快捷键;它大致相当于:
a = a << b;
因此,行capacity <<= 1
只表示“将capacity
中的值逐位左移1”。
https://stackoverflow.com/questions/9656026
复制