双端队列 Deque
@Test
public void testDeque(){
Deque<String> subway=new LinkedList<String>();
System.out.println("龙泽站到了,前门后门各上五个人");
for(int i=0;i<5;i++){
subway.offerFirst("前门上"+i);
subway.offerLast("后门上"+i);
}
System.out.println(subway);
System.out.println("西二旗站到了,前后门各下3个人");
for(int i=0;i<3;i++){
subway.pollFirst();
subway.pollLast();
}
System.out.println(subway);
System.out.println("西二旗站 ,前后门各拥上15个人");
for(int i=6;i<21;i++){
subway.offerFirst("前门上"+i);
subway.offerLast("后门上"+i);
}
System.out.println(subway);
@Test
public void testDeque(){
Deque<String> subway=new LinkedList<String>();
System.out.println("龙泽站到了,前门后门各上五个人");
for(int i=0;i<5;i++){
subway.offerFirst("前门上"+i);
subway.offerLast("后门上"+i);
}
System.out.println(subway);
System.out.println("西二旗站到了,前后门各下3个人");
for(int i=0;i<3;i++){
subway.pollFirst();
subway.pollLast();
}
System.out.println(subway);
System.out.println("西二旗站 ,前后门各拥上15个人");
for(int i=6;i<21;i++){
subway.offerFirst("前门上"+i);
subway.offerLast("后门上"+i);
}
System.out.println(subway);
}
-----------------输出内容如下:
龙泽站到了,前门后门各上五个人
[前门上4, 前门上3, 前门上2, 前门上1, 前门上0, 后门上0, 后门上1, 后门上2, 后门上3, 后门上4]
西二旗站到了,前后门各下3个人
[前门上1, 前门上0, 后门上0, 后门上1]
西二旗站 ,前后门各拥上15个人
[前门上20, 前门上19, 前门上18, 前门上17, 前门上16, 前门上15, 前门上14, 前门上13, 前门上12, 前门上11, 前门上10, 前门上9, 前门上8, 前门上7, 前门上6, 前门上1, 前门上0, 后门上0, 后门上1, 后门上6, 后门上7, 后门上8, 后门上9, 后门上10, 后门上11, 后门上12, 后门上13, 后门上14, 后门上15, 后门上16, 后门上17, 后门上18, 后门上19, 后门上20]
相对于排着队 两个门进,两个出。