0

我知道标题并没有真正说明我真正在寻找什么,因为它很难用几句话来解释。

我正在寻找的是我可以迭代的 Java 链接列表变体,但它在某种程度上具有固定长度。

你看,我想用我从遥测插件获得的数据跟踪 Kerbal Space Program 中模拟卫星的地面路径。但我只想显示过去大约两个小时的地面路径。现在整个数据将被写入链接列表,但随着时间的推移,列表变得越来越长,最终它变得如此之大,以至于需要更长的时间来迭代这个列表才能获得轨道最后两个小时的数据需要一组新的数据进来。

因此,如果最旧条目和最新条目之间的时间超过两个小时的任务时间,我正在寻找的链接列表变体将具有一定的固定长度,它会删除最后一个条目(条目)。所以我只需要迭代相对较少的条目,而不是前一个航班的整个数据集(保存以将其转换为 CSV)。

我感谢这里的乐于助人的人可能提供的任何帮助。

4

3 回答 3

2

只需维护一条定期修剪LinkedList. 你不需要任何特别的东西。任何Queue实现都可能有效;ArrayDeque可能是最好的。

那,或者LinkedList用一个包装器Queue实现来装饰 a ,它会丢弃太旧的元素。

于 2012-04-04T18:09:32.257 回答
1

我建议使用 Louis Wasserman 建议的队列。但您可能要考虑的另一种可能性是循环链表

这只是您描述问题时我想到的第一个数据结构,我认为它最自然。不幸的是,我不知道 Java 有任何可用的本地循环链表实现,所以如果你这样做,你将不得不实现自己的或使用 3rd 方代码......

于 2012-04-04T18:14:32.783 回答
0

我建议包装几乎所有列表实现,当您添加到列表时,将您刚刚添加的元素与列表中的最后一个元素进行比较,如果时间差大于两个小时,则删除最后一个元素。

于 2012-04-04T18:20:23.113 回答