Java是否有循环数据结构?即CircularLinkedList

时间:2016-08-07 01:11:13

标签: java

我正在寻找在Java中使用的循环数据结构。我记得在我的数据结构类中有一个名为CircularLinkedList的数据结构。

高级别:

我的用例是我需要遍历列表直到它为空。例如,考虑一副牌。我想按照我选择的任何顺序删除所有10个,然后全部5个,然后删除所有Jack。这只是一个高级别的例子。

详细说明:

我需要处理具有依赖关系的对象。我无法使用' B'在其中一个领域之前#A'。没有固有的类型,我想让它工作,然后如果它甚至需要改进。我想不按顺序处理这些对象。如果对象具有尚未处理的依赖项,我想跳过它并循环列表,直到它为空。

但是,我在java中找不到数据结构。谷歌搜索导致其他人的实施,再次编程课程。在我接受Java集合中没有实现此功能之前,我想在此发布一个问题以确定。毕竟它可能只是有一个我不记得的名字。

2 个答案:

答案 0 :(得分:4)

您的要求似乎是这句话:

  

如果对象具有尚未处理的依赖项,我想跳过它并循环列表,直到它为空。

这很容易。您使用Queue,使用poll()从队列中获取第一个值。如果您尚未使用该值,则使用add()将其添加回队列末尾。您一直保持头部值,直到Queue为空,例如当poll()返回null时。

出于您的目的,ArrayDeque可能是Queue实施的最佳选择,或者LinkedList如果您愿意

答案 1 :(得分:1)

Guava有一个Iterables.cycle方法就是这样做的。文档甚至建议使用此类用例。也许这就是你想要的?