2013-11-18 2 views
0

Я написал метод обновления коллекции в классе. Он выглядит так:Как получить обновленный список

public List<Queue> updateCollection(List<Queue> queueList,int indexid,Queue s) { 
    for(Queue queue : queueList) { 
     queueList.set(indexid, (Queue) s); 
    } 
    System.out.println(queueList); 
    return queueList; 
} 

Теперь я делаю обновления, вызывая вышеуказанный метод. Но обновленный список не отражается в основном методе. Кто-то может помочь?

+2

Как вызывается 'updateCollection()' в основном методе? – SimplyPanda

+1

Вы должны опубликовать [SSCCE] (http://www.sscce.org) –

+0

queueList = selection.updateCollection (queueList, j, s); где j - индекс, а s - это обновление, которое я пытаюсь сделать. – user2988935

ответ

0

Я думаю, что ваша проблема в вызове queueList.set(indexid, (Queue) s); в цикле. Переменная indexid не изменяется во время цикла. Это означает, что вы всегда ставите все свои элементы в одно и то же положение. Если, например, indexid - 0, вы установите весь свой элемент в 0 позицию, поэтому в конце итерации будет существовать последний элемент, и все остальные будут потеряны.

, если вы хотите скопировать элементы из очереди в список, используйте eiter queuList.add(s) в цикле или queueList.addAll(s).

+0

Значение находится в данный момент. У меня уже есть значение («QUEUE_1», «QUEUE_2», true) в списке 2-й позиции. Теперь я хочу обновить это до («QUEUE_1», «QUEUE_2», false) – user2988935

0

Ваша петля выполняет итерацию по Queue s в queueList, но ничего не делает с queue. Я просто устанавливаю indexid-й элемент в списке до s. Это будет то же самое, что и:

for(int i = 0; i < queueList.size; ++i) { 
    queueList.set(indexid, (Queue) s); 
} 
+0

Я могу видеть обновленный список в методе. Когда я получаю обновленный список, я все еще вижу старую :-(. – user2988935

0

it iting through the collection, но ничего не меняет. Используйте его вместо цикла.

if (indexid >=0 && indexid < queueList.size()) 
    queueList.set(indexid, (Queue) s); 
Смежные вопросы