我有一個阻塞優先級隊列,它存儲類型爲消息的對象,消息具有String [] data = new String [10]。現在我必須迭代整個阻塞隊列,檢查它的Object消息的第二個元素是否等於傳入消息的第六個元素。更新存儲在阻塞優先級隊列中的自定義對象
消息比較器不是基於需要更新的第6個元素。問題是,如果我取出一個對象,然後如何將它放在相同的位置,並且如果我使用下面的代碼來更新它,那麼隨時iter.next()運行它可能開始指向下一個對象。
這是我正在嘗試。
public synchronized void updateAck(Message ackMessage)
{
Iterator iter = localQ.iterator(); // localQ is the blocking priority queue here
while(iter.hasNext())
{
if(((Message)iter.next()).data[2].equalsIgnoreCase(ackMessage.data[6]))
{
(Integer.parseInt((Message)iter.next()).data[6])+1);
}
}
}