Java - 确定事件顺序 - AB 或 BA

标签 java sequence

这听起来可能是一个微不足道的问题,但我无法找到正确的解决方案。请求帮助。

问题:在我的代码中,我按顺序收到 2 个事件(一个接一个)。该顺序可以是先“事件 A”,然后“事件 B”,反之亦然。如果我的事件序列是AB,那么我需要采取一些行动,同样,如果我的事件序列是BA,那么我需要采取另一个行动。 但是,我发现很难确定序列并设置 boolean 值。 我想到的一种解决方案是使用堆栈。这两个事件都将被插入堆栈。我将检查堆栈大小是否为 2,然后弹出最后一个值并查看它是哪个事件。如果是A,那么我将为BA添加逻辑,如果是B,那么我将为AB添加逻辑。一旦完成,我将清除我的堆栈。

有没有更简单的方法?请指教

最佳答案

如果它是同步的,并且您只能拥有这些可能性,则只需要一个 boolean 值(hasOtherArrived)即可做到这一点:

当事件到达时,检查 hasOtherArrived 是否为 true:是否执行所需的代码(取决于到达的事件)并将 hasOtherArrived 设置为 false。否则将 hasOtherArrived 设置为 true。

AB 的一点模式(BA 情况类似) enter image description here

关于Java - 确定事件顺序 - AB 或 BA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23801912/

相关文章:

java - 当他们说 StringBuffer 类是同步的时,到底是什么意思?该类的所有方法都声明为同步的吗?

java - Hadoop解析文件名java

java - Java Spring中的实例之间是否可以不共享静态字段?

java - 无法使用公司服务器发送 SSL 邮件

python - 许多子序列之间的最长公共(public)序列

java - Postgres 中的生成值

java - 线程中的阻塞方法

python - Bash别名自动检测任意命名的文件序列?

python - 如何编写用最短行乘以数字列表的程序?

postgresql - 为什么即使在调用 nextval 之后 pgsql 仍声称序列的 currval 未定义?