确保元素唯一性的队列?


问题内容

我正在寻找java.util.Queue或Google集合中某些行为类似于Queue的实现,但还要确保队列中的每个元素都是唯一的。(所有进一步插入均无效)

有这种可能,还是我必须手工完成?

现在,我正在使用带有LinkedList实现的Queue,并在插入之前检查其唯一性。(我使用侧面地图进行此操作,在排队之前/之后在侧面地图中添加/删除元素)。我不太喜欢

欢迎任何输入。如果它不在java.util包中,那么这可能不是一个好主意?


问题答案:

怎么样LinkedHashSet?它的迭代器保留插入顺序,但是由于它是a
Set,因此其元素是唯一的。

如其文档所述,

请注意,如果将元素 重新插入 到集合中,则插入顺序 不会 受到影响。 __

为了有效地从此“队列”的头部删除元素,请经历其迭代器:

Iterator<?> i = queue.iterator();
...
Object next = i.next();
i.remove();