Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数据添加到ArrayList并删除旧的_Java_Android_Arraylist - Fatal编程技术网

Java 将数据添加到ArrayList并删除旧的

Java 将数据添加到ArrayList并删除旧的,java,android,arraylist,Java,Android,Arraylist,我有个小问题 例如,我有ArrayList ArrayList<Double> Temp1 = new ArrayList<>(); ArrayList Temp1=new ArrayList(); 当大小为5(0,1,2,3,4)时。我需要移动数据 新值出现时删除一个值。例如,当Temp1.add(5)时,我必须得到一个结果(1,2,3,4,5)。不使用循环是否可能 因为在我的应用程序中,我有非常大的ArrayList(1000-15000个元素),从连接的设备以每

我有个小问题

例如,我有
ArrayList

ArrayList<Double> Temp1 = new ArrayList<>();
ArrayList Temp1=new ArrayList();
当大小为5(0,1,2,3,4)时。我需要移动数据 新值出现时删除一个值。例如,当Temp1.add(5)时,我必须得到一个结果(1,2,3,4,5)。不使用循环是否可能


因为在我的应用程序中,我有非常大的
ArrayList
(1000-15000个元素),从连接的设备以每秒5-10个项目填充。当我使用“for”循环检索我失去生产力的最后50个项目并每秒从设备接收1-2个项目时。

您可以使用
set
函数替换某些值。例如,您需要从Arraylist中删除1个项目,并将其更改为100,然后按如下方式执行

Temp1.set(1,100);

这里1是索引,100是值。

正如@Nyavro在他的评论中提到的,您可以使用实现该接口的
链接列表。只需将新元素添加到尾部,然后弹出头部

List<Double> temp1 = new LinkedList<>();
temp1.add(5);
temp1.removeFirst();
List temp1=newlinkedlist();
1.加入(5);
temp1.removeFirst();

是否始终要删除第一个元素,对吗。然后您可以尝试此操作, 如果要添加新值,请首先使用

Temp1.remove(0);
从中,以下是您可以使用的数据结构列表:

  • 十五

您可以切换到LinkedList吗?您可以使用以下功能进行替换:list.set(您的\u索引、您的\u项目);尺寸固定吗?如果是这样,您可以使用固定大小的数组和
start
end
索引来实现循环数组。它将比LinkedList(如果大小固定)更有效。瞧,@Nyavro,谢谢。我以前没用过。我试试看!