我编写了一个方法来更新类中的集合。它看起来像:
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;
}
现在我通过调用上面的方法进行更新。但是更新的列表没有反映在main方法中。有人可以帮忙吗?
答案 0 :(得分:0)
我认为你的问题是在循环中调用queueList.set(indexid, (Queue) s);
。循环期间不会更改变量indexid
。这意味着您始终将所有元素放在同一位置。例如,如果indexid
为0,则将所有元素设置为0位置,因此在迭代结束时,最后一个元素将存在,所有其他元素将丢失。
如果要将元素从队列中复制到列表,请使用循环中的eiter queuList.add(s)
或queueList.addAll(s)
。
答案 1 :(得分:0)
您的循环遍历Queue
中的queueList
,但对queue
不执行任何操作。我只是将列表中的indexid
项重复设置为s
。这与:
for(int i = 0; i < queueList.size; ++i) {
queueList.set(indexid, (Queue) s);
}
答案 2 :(得分:0)
它正在迭代整个集合,但什么也没有改变。用它代替循环。
if (indexid >=0 && indexid < queueList.size())
queueList.set(indexid, (Queue) s);