一种发出信号的方式

时间:2014-05-18 19:44:50

标签: java arraylist wait

我有一个名为queue的ArrayList,当我们到达结账时,我将客户存放在超市。当他们付款时,我删除了Arraylist的第一个元素(队列中的第一个客户),但我不知道如何告诉第二个,现在是第一个,继续付款。此外,该客户应该等待"事件"。

总而言之,我正在寻找像"信号"和"等待"。

以下是我的概要:

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
    }
}

问候并感谢。

编辑:也许使用例外?对异常的帮助也将受到赞赏。

3 个答案:

答案 0 :(得分:2)

Customer不应该从队列中移除自己,它是Checkout的作业或Checkout的控制实体。此外,当您删除列表中的第一个客户时,所有其他客户将自动“向上移动”,您只需要处理结账队列中的第一个元素。

答案 1 :(得分:1)

为什么不直接告诉列表的第一个索引?据我所知,你要签出的那个现在将在索引0处,因为它们将在移除时移位。

答案 2 :(得分:0)

观察者模式 1.1。定义

观察者模式定义了对象之间的一对多依赖关系,这样当一个对象改变状态时,它的所有依赖关系都会被自动通知和更新。

正在观看的对象称为主题。正在观察状态变化的对象被称为观察者或听众。<​​/ p>

只是google JAVA OBSERVER的例子