如上代码所示,这就是比较坑的地方,size方法,并不是O(1)时间级别的。xjjdog就曾在上面吃过大亏,最后还是不敢再乱用了。 End
从上面的描述可以看出来。对于一个队列,有三套接口:插入、弹出、检测;根据是否抛异常,又分为两套,一套会抛出异常,另外一套直接返回值,刷题党自然喜欢后者了;如果再加上双向的队列,就需要再区分对头队尾;如果是阻塞队列,还要再加上一个维度。
所以,对于一个阻塞的双向队列,它的基本操作方法有:(3[基本]x2[异常与返回值]+4[阻塞加超时])x3[队头队尾]=5x2x3=30个方法,这就是王者LinkedBlockingDeque。