java 将对象写入链表_java – 将对象传递给链表中的下一个元素

我创建了一个arrayList处理来显示治疗室的5个实例,我还为治疗室创建了一个linkedList inTreatment,将5个患者对象从队列中传递出来,但是当我将多个对象传递给linkedList时,他们不断替换第一个元素添加而不是移动到下一个可用元素.我认为问题出在inTreatment.add行,但我不确定如何引用下一个可用的索引.所有建议都非常受欢迎.

下面是我创建数组并添加到inTreatment linkedList的代码.

创建治疗室阵列

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

}

}

}

解决方法:

问题可能来自这里:

queue.remove(i);

你要删除索引i处的元素,但是我在房间的范围内,并且与队列无关,是吗?

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

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

标签:java,arrays,linked-list

来源: https://codeday.me/bug/20190708/1401040.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值