Когда я добавляю это в программу, возникает проблема.
while (true) {
boolean h1Status = false, h2Status = false, h3Status = false;
if (h1.isEmpty() == false) {
if (h1.last() == LastBuffer + 1) {
LastBuffer++;
System.out.println("Move parcel " + LastBuffer + " from input buffer to output buffer directly");
h1Status = true;
}
} else if (h2.isEmpty() == false) {
if (h2.last() == LastBuffer + 1) {
LastBuffer++;
System.out.println("Move parcel " + LastBuffer + " from input buffer to output buffer directly");
h2Status = true;
}
} else if (h3.isEmpty() == false) {
if (h3.last() == LastBuffer + 1) {
LastBuffer++;
System.out.println("Move parcel " + LastBuffer + " from input buffer to output buffer directly");
h3Status = true;
}
} else if (h1Status == false && h2Status == false && h3Status == false) {
break;
}
}
и ошибка
Exception in thread "main" EmptyListException: List is empty.
at LinkedList.removeFromTail(LinkedList.java:54)
at LinkedQueue.HeadCheck(LinkedQueue.java:56)
at ParcelQueues.main(ParcelQueues.java:124)
Я добавил два метода в очередь
public int last()
{
Object item=qll.removeFromHead();
int i=(int)item;
return i;
}
другое:
public int HeadCheck()
{
Object item=qll.removeFromTail();
int i=(int)item;
qll.addToTail(item);
return i;
}
как я могу решить проблему? Я решил ее примерно за 3 часа. Это как договоренность о посылке при доставке. Когда 1 выводится в буфер. Нужно проверить все очередь (h1, h2, h3) в буфер. Итоговый результат равен (1 2 3 4 5 6 7)