java addfirst_java – ArrayDeque类的addFirst方法
以下行的功能基本上是(head-1)MODULO(elements.length),因此當head == 0時,從head減去1將導致最大可能值而不是-1.
head = (head - 1) & (elements.length - 1)
10是元素的有效長度,根據實現,elements.length總是2的冪.如果不是這種情況,則操作無效.
了解其工作原理需要了解位操作.
假設elements.length == 16 == 00010000b并且為了簡單起見,值的長度是8位而不是實際的32:
(elements.length – 1)用于獲得n位長的位掩碼,其中2 ^ n是元素的當前長度. (elements.length – 1)== 15 == 00001111b在這種情況下.
如果頭> 0和頭< elements.length(給定),然后(head-1)& (elements.length - 1)==(head - 1),因為與1s的AND運不起作用. 如果head == 0,head – 1 == -1 == 11111111b. (二進制補碼有符號整數表示法,盡管你也可以將其視為一個簡單的整數溢出.)與掩碼(head-1)& 00001111b == 11111111b& 00001111b == 00001111b == 15,這是想要的值.
總結
以上是生活随笔為你收集整理的java addfirst_java – ArrayDeque类的addFirst方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 逍遥安卓模拟器多开同步(逍遥安卓模拟器多
- 下一篇: 进口收货人备案系统官网(进口收货人备案系