У меня есть очередь с именем ArrayList, в которой я храню клиентов в супермаркете по мере их прибытия на кассу. Когда они заплатили, я удаляю первый элемент Arraylist (Customer, который был первым в очереди), но я не знаю, как сообщить второму элементу, который теперь является первым, перейти к оплате. Кроме того, этот Заказчик должен ожидать «события».
Подводя итог, я ищу что-то вроде «сигнала» и «ожидания».
Вот схема того, что у меня есть:
public class Customer{
public void checkItems(){
//Here goes the code for waiting his turn
//Here goes the code for paying items (already done)
//The next line is how I remove the client of the queue
Globals.checkoutList.get(currentCheckout).queue.remove(0);
Checkout.nextCustomer();
}
}
public class Checkout{
public static void nextCustomer(){
//Here I should tell the next customer that it is his turn
}
}
С уважением и благодарностью.
РЕДАКТИРОВАТЬ: возможно, используя исключения? Помощь с исключениями тоже приветствуется.
this==Globals.checkoutList.get(currentCheckout).queue.get(0)
внутри бесконечного цикла с разрывом, если условие выполняется 19.05.2014