???????
????Java???????????Stack???????н???Queue???????????????????????????????Java?????????Stack???????????????Ч??ArrayDeque?????Queue???????????????????????ArrayDeque????????LinkedList????
???????????
????????????У????????Deque????Deque???????“double ended queue”?????????У??????????????????????????????á??±??г???Deque??Queue?????????

?????±??г???Deque??Stack????????

?????????????????????Deque??12????????????????????????????????????????????????????????????????????????????????????????????????????????false??null???????????????????????????????????£????????????????????Deque??????12?????????????????????????в????????????????????????????????????????????????
????ArrayDeque??LinkedList??Deque???????????????????????????AarryDeque?????????У????????????????LinkedList??????????????ArrayDeque?????????
????????????????ArrayDeque????????????????????????????????????????????????????????黹????????????????????饗circular array??????????????κ??????????????????????ArrayDeque???????????not thread-safe????????????????????????????????????????????????????????null????

??????????????????head????????????Ч????tail???β??????????????????λ?????????????飬????head??????????0??tail???????????head??
????????????
????addFirst()

????addFirst(E e)??????????Deque?????????????????head?????????????????????±????????????£???????elements[--head] = e???ɡ?

???????????????1.????????????2.?±????????????????У????head?0?????????addFirst()??????????仹???????head?-1???±??????????д????????????????????
????//addFirst(E e)
????public void addFirst(E e) {
????if (e == null)//?????????null
????throw new NullPointerException();
????elements[head = (head - 1) & (elements.length - 1)] = e;//2.?±???????
????if (head == tail)//1.????????
????doubleCapacity();//????
????}
??????????????????????????????????????????????tail???????????????????λ?????ζ??elements???????????????λ???????????????????????????