因爲工做的緣由,須要一個優先級隊列java
PriorityBlockingQueue 不能知足咱們的需求,具體緣由能夠看看要求spa
大致思路以下:線程
1: 隊列必須定長(隊列20個長度,再來21個元素,隊列不增加,添加返回成功和失敗)隊列
2:必須能夠替換優先級低的,(假如隊列容量是20。目前對了裏面的元素也是20,(即隊列已經存儲滿了,ci
按照 1的規則,隊列的容量不能在增長了),要判斷隊列中的元素有沒有比即將添加的元素的優先級低,開發
有的話,替換優先級低的元素,返回true,不然返回 false。源碼
3:隊列必須知足java的線程池對於隊列的要求。it
思考:io
開發一個新的優先級阻塞隊列,而且花費時間過長。對於java已經有一些隊列,能夠copy源碼,線程池
修改insert ,offer 等方法的源碼便可。並且還能夠知足java的線程池對於隊列的要求
代碼:
pass。
公司規定