gpt4 book ai didi

具有推送/弹出且没有重复项的 Java 数据结构?

转载 作者:行者123 更新时间:2023-11-29 06:29:10 24 4
gpt4 key购买 nike

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

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

保留插入/删除的顺序并不是特别重要。

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

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

最佳答案

使用LinkedHashSet,并将pop实现为

Iterator<E> iterator = set.iterator();
E result = iterator.next();
iterator.remove();

关于具有推送/弹出且没有重复项的 Java 数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42401777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com