我需要将元素添加到ArrayList
队列中,但是当我调用函数来添加元素时,我希望它在数组的开头添加元素(因此它的索引最低),如果数组有10个元素,则添加一个新的结果来删除最旧的元素(索引最高的那个)。
有人有什么建议吗?
发布于 2016-06-30 21:10:48
你可能想看看德克。它使您可以直接访问列表中的第一项和最后一项。
发布于 2012-10-18 16:23:14
我认为实现应该很简单,但是考虑到效率,你应该使用LinkedList而不是ArrayList作为容器。您可以参考以下代码:
import java.util.LinkedList;
import java.util.List;
public class DataContainer {
private List<Integer> list;
int length = 10;
public void addDataToArrayList(int data){
list.add(0, data);
if(list.size()>10){
list.remove(length);
}
}
public static void main(String[] args) {
DataContainer comp = new DataContainer();
comp.list = new LinkedList<Integer>();
int cycleCount = 100000000;
for(int i = 0; i < cycleCount; i ++){
comp.addDataToArrayList(i);
}
}
}
发布于 2017-02-14 14:18:15
Java提供了addFirst(E,e)和push(E,e)方法,可以将元素添加到列表的前面。
https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html#addFirst(E)
https://stackoverflow.com/questions/12949690
复制相似问题