【发布时间】:2015-04-28 18:55:01
【问题描述】:
我创建了一个 arrayList treat 来显示治疗室的 5 个实例,我还创建了一个linkedList inTreatment 用于治疗室将 5 个患者对象从 queue 传递到,但是当我传递多个对象时对于linkedList,它们会不断替换添加的第一个元素,而不是移动到下一个可用元素。我相信问题在于inTreatment.add 行,但我不确定如何引用下一个可用索引。所有建议都非常受欢迎。
下面是我创建数组并添加到inTreatmentlinkedList 的代码。
创建治疗室数组
public static void createTreatmentRooms() {
for (int i = 0; i < treat.length; i++) {
treat[i] = new TreatmentRoom();
treat[i].setAvailable(true);
}
}
添加到治疗室方法
for (int i = 0; i < TreatmentRoom.treat.length; i++) {
if ((TreatmentRoom.treat[i].isAvailable())
&& (Queue.queue.size() != 0)
&& (Queue.queue.getFirst().getTriage() != Status.NOT_ASSESSED)) {
// add patient to inTreatment list for future sorting...
inTreatment.add(queue.getFirst());
System.out.println("taken to treatment queue");
// remove patient from front of queue
for (Patient p : queue) {
System.out.println(p.getFirstName());
}
queue.poll();
System.out.println("second queue");
for (Patient p : queue) {
System.out.println(p.getFirstName());
}
System.out.println("removed from queue");
// if free, add patient to treatment room
TreatmentRoom.treat[i].setPatient(inTreatment.getFirst());
System.out.println("sent to treatment room"
+ TreatmentRoom.treat[i]);
// System.out.println("patient added" +
// queue.get(i).getFirstName());
// set treatment room to unavailable
TreatmentRoom.treat[i].setAvailable(false);
System.out.println("treatment room busy");
} else {
System.out.println("Treatment room is not available");
}
}
}
【问题讨论】:
-
你试过在调试模式下完成它吗?
-
@ChrisBolton 我对 java 比较陌生,还没有涉及调试,所以我不确定从哪里开始
-
你在用eclipse吗?
-
是的,克里斯,我正在使用 eclipse
-
@cg91,这只是一个练习还是您打算在现实生活中使用此代码? --- java 提供了内置的数据结构,如 Queue/maps/set -- 集合 .. 我鼓励您使用这些.. 通常它们经过充分测试并且没有错误 - 提供了开箱即用的大部分功能。
标签: java arrays linked-list