确保元素唯一性的队列?
问题内容:
我正在寻找java.util.Queue或Google集合中某些行为类似于Queue的实现,但还要确保队列中的每个元素都是唯一的。(所有进一步插入均无效)
有这种可能,还是我必须手工完成?
现在,我正在使用带有LinkedList实现的Queue,并在插入之前检查其唯一性。(我使用侧面地图进行此操作,在排队之前/之后在侧面地图中添加/删除元素)。我不太喜欢
欢迎任何输入。如果它不在java.util包中,那么这可能不是一个好主意?
问题答案:
怎么样LinkedHashSet
?它的迭代器保留插入顺序,但是由于它是a
Set
,因此其元素是唯一的。
如其文档所述,
请注意,如果将元素 重新插入 到集合中,则插入顺序 不会 受到影响。 __
为了有效地从此“队列”的头部删除元素,请经历其迭代器:
Iterator<?> i = queue.iterator();
...
Object next = i.next();
i.remove();