當看到Java HashMap中的源代碼,我看到下面的一些代碼:誰可以解釋Java運算符<< =?
而(容量<參數:initialCapacity) 容量< < = 1;
但我找不到關於運營商的文檔< < = via Google.I我知道運營商< <在Java中。 有什麼幫助嗎?
當看到Java HashMap中的源代碼,我看到下面的一些代碼:誰可以解釋Java運算符<< =?
而(容量<參數:initialCapacity) 容量< < = 1;
但我找不到關於運營商的文檔< < = via Google.I我知道運營商< <在Java中。 有什麼幫助嗎?
這是一個左移位分配,它幾乎是相同的:
capacity = capacity << 1;
(如+=
/-=
/等)
哇,像c + +,謝謝 – 2012-03-11 15:03:02
這是相同的想法之類的東西+=
,它轉移和受讓人。
在你的例子中,capacity
將被分配給自己,左移一位,直到它達到initialCapacity
。它在operators page上。
a <<= b
只是一個左移的快捷方式,然後分配;這大致相當於:
a = a << b;
所以行capacity <<= 1
僅僅表示「按位由1左移在capacity
值」。
http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Java/Chapter02/operators.html
< < =,= >>,>>> =
這是一個移位操作,然後分配,例如 x < < = n; 相當於 x = x < < n;
「左移等於」(< < =)是一種用於2.
乘以下面都產生相同的結果的技術。
while (capacity < initialCapacity) { capacity <<= 1; }
while (capacity < initialCapacity) { capacity = capacity * 2; }
while (capacity < initialCapacity) { capacity *= 2; }
您應該接受答案,勾選最佳答案旁邊的複選標記。我認爲這是Binyamin Sharet基於你對他的迴應。 – 2012-03-11 15:06:20