У меня есть очередь приоритетов блокировки, в которой хранятся объекты типа Message, сообщение имеет String [] data = new String [10]. Теперь мне нужно перебрать всю очередь блокировки, проверить, равен ли 2-й элемент сообщения объекта 6-му элементу входящего сообщения.
Компаратор сообщений не основан на 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);
}
}
}