【发布时间】:2010-03-21 18:19:17
【问题描述】:
我正在寻找类似队列的东西,它允许我将元素放在队列的末尾并在开始时将它们弹出,就像常规队列一样。
不同之处在于我还需要不时压缩队列。也就是说,假设我的队列中有以下项目(每个字符,包括点,都是队列中的一个项目):
e d . c . b . a
(this Queue has 8 items)
然后,我需要例如删除最后一个点,以便获得:
e d . c . b a
Java Collection 类中有类似的东西吗?我需要将它用于我正在做的程序,除了 Java 的类之外我不能使用任何东西。我不允许为自己设计一个。目前我只是使用 LinkedList,但我认为这可能更像是一个队列而不是 LinkedList。
谢谢
编辑:
项目的主要内容如下: 有一个交通信号灯可以是绿色的(相关的符号是'-')或红色的('|')。那个红绿灯在右边: alt text http://img684.imageshack.us/img684/9602/0xfhiliidyxdy43q5mageu0.png 一开始,你没有任何汽车,交通灯是绿色的,所以我们的列表表示为:
....... -
现在,在下一次迭代中,我有一个随机变量,它会告诉我哪里有汽车来了。如果有车来,那么我们可以看到它从左边出现。在每次迭代中,所有汽车都向右移动一步。如果他们右边有任何汽车,那么他们就不能移动:
a...... - (iteration 1)
.a..... - (iteration 2)
..a.... - (iteration 3)
等等
现在,发生的情况是,有时红绿灯会变成红色('-')。在这种情况下,如果你有几辆车,那么即使它们在移动时有一定的距离,当它们必须停下来等待红绿灯时,它们也会靠近:
...b.a. - (iteration n)
....b.a - (iteration n+1)
.....ba - (iteration n+2) here they got close to each other
现在,这就是为什么它像队列一样工作的原因,但有时当汽车靠近红色交通信号灯时,我必须删除这些点。 还要记住,这里街道的大小是 7 个字符,但有时会增长,所以我们不能假设这是一个固定长度的列表。
【问题讨论】:
-
您能详细说明“压缩队列”的概念吗?在我看来,您会想要自己推出实现 Queue 接口的产品(它非常小)。
-
你不能自己设计一个吗? 哈???
-
@SLaks :也许那是为了一门课程,他们希望他重新设计它以理解它
-
这是我必须为大学做的一个小项目,他们告诉我我只能使用一个类(所有代码逻辑所在的类)。所以我不能设计、继承/任何其他类。
-
点和字母之间有什么特别的对应关系吗?除了最后一个字母之外,您还需要删除字母前的点吗?
标签: java collections queue