タイプ Message のオブジェクトを格納するブロッキング プライオリティ キューがあります。メッセージには String[] data = new String[10] があります。ここで、ブロッキング キュー全体を反復する必要があります。そのオブジェクト メッセージの 2 番目の要素が着信メッセージの 6 番目の要素と等しいかどうかを確認します。
Messages のコンパレータは、更新が必要な 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);
}
}
}