[ArrayDeque] #ArrayDeque
Head:位于第一个元素位置
Tail:位于最后一个元素后面
超过限度但是容量够的情况下,tail跑到头或者head跑到尾---循环array
如果tail==head-->拓容: 2x然后按照“人类顺序”复制到新array,改变引用,garbage collection
addFirst(): Amortized O(1)
addLast(): Amortized O(1)
循环index用mod ,改进够可以用逻辑与运算 &
index = (index+1) %length <=> (index + 1) & (length - 1)
index = (index-1+length)%length <=> (index - 1) & (length - 1)
b
circular array
operations are limited to heads and tails