Java 将对象传递给链表中的下一个元素

Java 将对象传递给链表中的下一个元素,java,arrays,linked-list,Java,Arrays,Linked List,我已经创建了一个arrayListtreat来显示一个治疗室的5个实例,我还为治疗室创建了一个linkedListInttreat,以便将5个患者对象从队列传入,但是,当我将多个对象传递给linkedList时,它们会不断替换添加的第一个元素,而不是移动到下一个可用元素。我相信问题在于插入。添加行,但我不确定如何引用下一个可用索引。所有建议都非常受欢迎。 下面是我创建数组并添加到intreationlinkedList的代码 创建治疗室阵列 public static void createTr

我已经创建了一个arrayList
treat
来显示一个治疗室的5个实例,我还为治疗室创建了一个linkedList
Inttreat
,以便将5个患者对象从
队列
传入,但是,当我将多个对象传递给linkedList时,它们会不断替换添加的第一个元素,而不是移动到下一个可用元素。我相信问题在于
插入。添加
行,但我不确定如何引用下一个可用索引。所有建议都非常受欢迎。
下面是我创建数组并添加到
intreation
linkedList的代码

创建治疗室阵列

public static void createTreatmentRooms() {
    for (int i = 0; i < treat.length; i++) {
        treat[i] = new TreatmentRoom();
        treat[i].setAvailable(true);
    }
}
public static void createTreatmentRooms(){
for(int i=0;i
添加到治疗室方法

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");

        }

    }
}
for(int i=0;i
问题可能来自这里:

queue.remove(i);
您正在删除索引
i
处的元素,但是
i
在房间范围内,与队列无关,是吗

您可能希望删除第一个元素


旁注:应该有一个
poll()
方法,允许您在一次调用中查看并删除队列的第一个元素,顺便说一句,但我不确定您在这里使用的是什么类型的队列,它看起来不像
java.util.Queue

你试过在调试模式下使用它吗?@ChrisBolton我对java比较陌生,还没有涉及到调试,所以我不确定从哪里开始使用eclipse?是的,我正在使用eclipse@cg91,这只是一个练习,还是您计划在现实生活中使用此代码?--java提供了内置的数据结构,如Queue/maps/set--collections。。我鼓励你使用这些。。通常,它们都经过了良好的测试并且没有bug——提供了大多数开箱即用的功能。
queue
是另一个链接列表,我从中调用patient对象。是的,我看到
队列.remove(I)
不正确,我已经更改了,但问题仍然存在,是否需要使用
处理.add方法更改某些内容?是否可以使用更改更新代码?仅供参考,
intreation.add()
将把您的元素添加到列表的末尾,这没有问题。如果你使用Java标准库,你可能需要考虑使用<代码> java java。UTILQueUng/>代码>code>poll()
实际上也存在于
LinkedList上,仅供参考;-)代码已更新,intreation.add方法正在将以前添加的患者对象替换为linkedList同一索引中的新对象,这有什么原因吗?您怎么知道?你怎么看?