带推/弹的Java数据结构,没有重复?

jmi*_*ite 1 java queue set data-structures

我正在寻找Java中的队列类型数据结构(最好是在标准库中),它具有以下属性:

  • 我可以在结构中添加一个元素(推送)
  • 我可以从结构中删除任意元素,而无需指定哪个元素,如remove()队列的操作.如果结构为空,显然会失败.
  • 如果我向已经存在的结构添加元素,则不会添加两次.

保留插入/删除的顺序并不是非常重要.

Set结构没有重复,但没有pop操作,Queue结构不保证没有重复.是否符合我的需求?

为了避免XY问题,我正在做一个工作列表算法:需要更新的节点被添加到集合中,所以我想轻松弹出需要更新的下一个节点,并添加需要更新的节点而不需要更新如果它们已经在工作清单中,则重复.

Lou*_*man 5

使用LinkedHashSet,并实现pop

Iterator<E> iterator = set.iterator();
E result = iterator.next();
iterator.remove();
Run Code Online (Sandbox Code Playgroud)

  • 也许你的意思是`oniterator.next();`和`iterator.remove();`? (2认同)