我正在寻找在Java中使用的循环数据结构。我记得在我的数据结构类中有一个名为CircularLinkedList的数据结构。
高级别:
我的用例是我需要遍历列表直到它为空。例如,考虑一副牌。我想按照我选择的任何顺序删除所有10个,然后全部5个,然后删除所有Jack。这只是一个高级别的例子。
详细说明:
我需要处理具有依赖关系的对象。我无法使用' B'在其中一个领域之前#A'。没有固有的类型,我想让它工作,然后如果它甚至需要改进。我想不按顺序处理这些对象。如果对象具有尚未处理的依赖项,我想跳过它并循环列表,直到它为空。
但是,我在java中找不到数据结构。谷歌搜索导致其他人的实施,再次编程课程。在我接受Java集合中没有实现此功能之前,我想在此发布一个问题以确定。毕竟它可能只是有一个我不记得的名字。
答案 0 :(得分:4)
您的要求似乎是这句话:
如果对象具有尚未处理的依赖项,我想跳过它并循环列表,直到它为空。
这很容易。您使用Queue
,使用poll()
从队列中获取第一个值。如果您尚未使用该值,则使用add()
将其添加回队列末尾。您一直保持头部值,直到Queue
为空,例如当poll()
返回null
时。
出于您的目的,ArrayDeque
可能是Queue
实施的最佳选择,或者。LinkedList
如果您愿意
答案 1 :(得分:1)
Guava有一个Iterables.cycle方法就是这样做的。文档甚至建议使用此类用例。也许这就是你想要的?