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

发布于 2024-11-30 21:02:44 字数 207 浏览 0 评论 0原文

是否有一种 Java 数据结构:

  • 不允许重复
  • 保留插入顺序
  • 允许在集合的开头或末尾删除和插入

LinkedHashSet,但它只允许 remove(object)add(object) 按照Set

Is there a Java data structure that:

  • does not allow duplicates
  • retains insertion order
  • allows removal and insertion at either the start or end of the collection

There is LinkedHashSet, but it only allows remove(object), add(object) as per Set.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

温折酒 2024-12-07 21:02:44

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

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

LinkedHashSet will allow removal of the first element, just do

Iterator iter = linkedHashSet.iterator();
if(iter.next()) {
   iter.remove();
}
夜未央樱花落 2024-12-07 21:02:44

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

LinkedHashSet 已更新为具有 addFirst, <代码>addLastremoveFirstremoveLast 方法。当与 LinkedHashSet 先前存在的功能相结合时,这可以满足规定的要求。

As of Java 21, LinkedHashSet meets the stated requirements.

LinkedHashSet was updated to have addFirst, addLast, removeFirst, and removeLast methods. This, when combined with the previously existing capabilities of LinkedHashSet, meets the stated requirements.

分開簡單 2024-12-07 21:02:44

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

If you're willing to give up a little performance for no duplicates, you can always extend ArrayDeque and override all the methods that insert into the collection to see if the element already exists.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文