Java 如何获取更新的列表

Java 如何获取更新的列表,java,list,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 q

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

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;
}
public List updateCollection(List queueList,int indexid,Queue s){
用于(队列:队列列表){
set(indexid,(Queue)s);
}
System.out.println(队列列表);
返回队列列表;
}

现在我通过调用上述方法进行更新。但是更新后的列表没有反映在main方法中。有人能帮忙吗?

我想你的问题出在call
queueList.set(indexid,(Queue)s)在循环中。循环期间未更改变量
indexid
。这意味着您总是将所有元素放在同一位置。例如,如果
indexid
为0,则将所有元素设置为0位置,因此在迭代结束时,最后一个元素将在那里,而所有其他元素都将丢失


如果要将元素从队列复制到列表,请在循环中使用
eiter queuList.add
queueList.addAll
您的循环在
queueList
中的
队列
上迭代,但对
队列
不执行任何操作。我只是重复地将列表中的
indexid
th项设置为
s
。这与:

for(int i = 0; i < queueList.size; ++i) {
    queueList.set(indexid, (Queue) s);
}
for(int i=0;i
它正在对集合进行迭代,但没有任何更改。使用它而不是循环

if (indexid >=0 && indexid < queueList.size())
  queueList.set(indexid, (Queue) s);
if(indexid>=0&&indexid
main方法中如何调用
updateCollection()
?您应该发布一个queueList=selection.updateCollection(queueList,j,s);其中,j是索引,s是我试图进行的更新。为什么要循环浏览列表?我正在浏览列表,一旦找到“j”的索引,我会在该位置进行更新。该值已存在于列表中。我已经在列表第2位有了值(“QUEUE_1”,“QUEUE_2”,true)。现在我想将其更新为(“QUEUE_1”、“QUEUE_2”,false),我可以在方法中看到更新的列表。当我得到更新的列表时,我仍然看到旧的列表:-(。