我需要将元素添加到ArrayList
队列无论如何,但是当我调用该函数来添加元素时,我希望它在数组的开头添加该元素(因此它具有最低的索引),并且如果数组有 10 个元素,则添加新元素会删除最旧的元素元素(索引最高的元素)。
有没有人有什么建议?
List
有方法add(int, E) http://docs.oracle.com/javase/7/docs/api/java/util/List.html,所以你可以使用:
list.add(0, yourObject);
之后您可以使用以下命令删除最后一个元素:
if(list.size() > 10)
list.remove(list.size() - 1);
但是,您可能需要重新考虑您的需求或使用不同的数据结构,例如Queue http://docs.oracle.com/javase/7/docs/api/java/util/Queue.html
EDIT
也许看看 Apache 的CircularFifoQueue https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/queue/CircularFifoQueue.html:
CircularFifoQueue
是一个具有固定大小的先进先出队列,如果已满,则替换其最旧的元素。
只需使用最大大小初始化它:
CircularFifoQueue queue = new CircularFifoQueue(10);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)