最有效的数据存储对象,用于排队最大数量的元素

时间:2011-01-10 17:46:39

标签: java android algorithm data-structures

我需要一种存储类型,我可以设置最大数量的元素,每当我向尾部添加一些内容时,头部会根据需要以较低的开销截断。如果必须的话,我当然可以手动执行此操作。实施例

max = 1000

用整数1-1000填充它:[1,2,...,999,1000]

添加数字1000 - 1500:[500,501,....,1499,1500]

它必须尽可能便宜的操作,因为我此时将运行多个线程,一个进行录音。我不关心保持头部元素弹出,我想在批量操作中摆脱它们。

我检查了SDK中的队列类型,不确定哪些可以满足这些需求,可能是某种链接队列。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

使用环形缓冲区,也称为循环队列;这些可以作为数组实现,因此它们特别便宜。有关Java中的实现,请参阅this question