队列集合的Java数据结构

时间:2012-01-31 02:43:55

标签: java queue hashtable

如果我有很多队列并且每个队列都有一个唯一的ID,那么队列的哈希表是否可行?我知道我问这个问题听起来很奇怪,但只是想知道是否有更好的优化方法。

抱歉缺乏信息。我基本上存储由客户端ID标识的消息队列。 客户端将请求从服务器获取消息。 在ack没有到达服务器的情况下,消息仍然保留在队列中,直到客户端再次尝试获取最旧的消息。 如果客户端无法确认并以FIFO方式检索所有消息,则可以保留所有消息。

2 个答案:

答案 0 :(得分:5)

这个问题没有提供您想要做什么的任何细节。这非常重要,因为使用模式对于确定哪种数据结构最有效适用于您的用例至关重要。

但我会说,在没有其他细节的情况下,HashTable of Queues听起来是一个明智的选择,HashTable使用ID作为键,相应的Queue作为值。

然后以下操作都是O(1),开销很低:

  • 使用给定ID
  • 将项添加到队列中
  • 从具有给定ID的队列中拉出第一个项目

在大多数情况下,这可能是您需要的使用模式.....

答案 1 :(得分:0)

因为java是静态类型的,我肯定会使用哈希表...(也就是说,如果我们谈论的是优化)