Я, честно говоря, понятия не имею, в чем проблема. Эта же проблема произошла в другой части кода, которая еще не была исправлена.
Проект состоит в объединении двух полностью готовых отсортированных очередей в зависимости от времени прибытия объекта клиента, которое занимает 3 целых числа. Три целых числа: время прибытия, время обслуживания и время выхода.
Он просто печатает 917 7 раз.
Вот код
public static Queue2<Customer> Question3(Queue2<Customer> A, Queue2<Customer> B) {
Queue2<Customer> C = new Queue2<Customer>();
if (A.getSize() == 0 && B.getSize() == 0) {
System.out.println("Sorry Bro");
} else if (A.getSize() == 0) {
while (B.getSize() > 0) {
C.enqueue(A.dequeue());
}
} else if (B.getSize() == 0) {
while (A.getSize() > 0) {
C.enqueue(B.dequeue());
}
} else {
Customer c1 = A.dequeue();
Customer c2 = B.dequeue();
int n = A.getSize() + B.getSize();
for (int x = 0; x < n; x++) {
if (A.getSize() == 0) {
C.enqueue(B.dequeue());
} else if (B.getSize() == 0) {
C.enqueue(A.dequeue());
} else {
if (c1.getArrival() > c2.getArrival()) {
C.enqueue(c2);
c2 = B.dequeue();
System.out.println(c2.getArrival());
} else {
C.enqueue(c1);
c1 = A.dequeue();
System.out.println(c1.getArrival());
}
}
}
}
return C;
}
Вот основной метод:
Queue2<Customer> ctest = new Queue2<Customer>();
ctest.enqueue(new Customer(915,10,0));
ctest.enqueue(new Customer(916,6,0));
ctest.enqueue(new Customer(918,7,0));
ctest.enqueue(new Customer(925,3,0));
Queue2<Customer> ctest1 = new Queue2<Customer>();
ctest1.enqueue(new Customer(917,10,0));
ctest1.enqueue(new Customer(922,3,0));
ctest1.enqueue(new Customer(924,2,0));
Queue2<Customer> ctest3 = Question3(ctest,ctest1);
Customer c4 = ctest3.dequeue();
while(ctest3.getSize() > 0) {
System.out.println(c4.getArrival());
c4 = ctest3.dequeue();
System.out.println("Printing");
}
System.out.println(c4.getArrival());