【发布时间】:2013-11-19 17:17:25
【问题描述】:
我有一个队列列表如下:
公共类队列选择{ 公共列表 initQueueCollection() { QueueLoad d1 = new QueueLoad("QUEUEA1", "QUEUEB1", true); QueueLoad d2 = new QueueLoad("QUEUEA2", "QUEUEB2", false); QueueLoad d3 = new QueueLoad("QUEUEA3", "QUEUEB3", true); QueueLoad d4 = new QueueLoad("QUEUEA4", "QUEUEB4", false); 列表列表 = 新的 ArrayList(); 列表.add(d1); 列表.add(d2); list.add(d3); list.add(d4); 返回列表; }现在从主方法,我把上面的方法称为,
QueueSelection selection = new QueueSelection();
List<QueueLoad> queueList =selection.initQueueCollection();
当第一个输入/文件到来时,检查队列以查看其中哪个是false,所以我正在获取第二个("QUEUEA2", "QUEUEB2", false);
一旦我获取它,我应该将状态更改为true,如("QUEUEA2", "QUEUEB2", true);我正在使用
并且列表已更新。现在,当第二个输入出现时,因为在第一行中看到的是List<QueueLoad> queueList =selection.initQueueCollection();
它总是得到旧的列表,而不是更新的列表。
请帮忙。
【问题讨论】:
-
那是因为你一直在初始化它。当您执行此操作时: List list = new ArrayList();在 initQueueCollection() 方法中。
-
从你的问题中不清楚你在哪里调用 initQueueCollection()。例如,它是否在 for 循环内?
-
@quazzieclodo 我在 for 循环外调用 initQueueCollection()。
-
您提到 initQueueCollection() 被多次调用。从你的问题来看,我从来没有看到这是怎么发生的。
-
@quazzieclodo,当新输入出现时,我正在调用 initQueueCollection()。对于每一个输入,每个人都会看到状态为“假”的队列,并将其设为“真”。我的问题是,一旦 List 更新为 true,对于第二个输入,应该获取具有更新状态的新列表,以便不应该再次获取之前获取的同一个队列。