如何获取更新列表

时间:2013-11-18 21:25:19

标签: java list

我编写了一个方法来更新类中的集合。它看起来像:

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方法中。有人可以帮忙吗?

3 个答案:

答案 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);