保持顺序的Java数据结构,不允许重复,并允许在开始和结束时删除和插入



是否存在这样的Java数据结构:

  • 不允许复制
  • 保留插入顺序
  • 允许在集合的开始或结束时删除和插入

LinkedHashSet,但它只允许remove(object), add(object),因为Set

LinkedHashSet将允许删除第一个元素,只需执行

Iterator iter = linkedHashSet.iterator();
if(iter.next()) {
   iter.remove();
}

从Java 21开始,LinkedHashSet满足规定的要求。

LinkedHashSet被更新为具有addFirst, addLast, removeFirstremoveLast方法。当与LinkedHashSet的现有功能相结合时,这满足了所述的需求。

如果您愿意为了无重复而放弃一点性能,您可以扩展ArrayDeque并覆盖所有插入到集合中的方法,以查看该元素是否已经存在。

最新更新