如图所示,一次运行一个方法后,我想删除旧项目,并准备下次计算,但我想知道如何从指示的索引中删除arraylist中的元素,如队列,服从FIFO算法?
答案 0 :(得分:11)
您可以使用List#subList(int, int):
List<Integer> list = ...
list = list.subList(10, list.size()); // creates a new list from the old starting from the 10th element
或者,由于subList
创建了一个视图,每个修改都会影响原始列表,这可能会更好:
List<Integer> list = ...
list.subList(0, 10).clear(); // clears the first 10 elements of list
答案 1 :(得分:1)
只需使用remove()方法即可。
假设您要删除ArrayList
的索引为20到30的元素:
ArrayList<String> list = ...
for (int i = 0; i < 10; i++) { // 30 - 20 = 10
list.remove(20);
}
删除索引20
的第一个元素后,元素21
将移至索引20
。因此,您必须删除索引20
处元素的10倍以删除接下来的10个元素。
答案 2 :(得分:0)
由于您没有编写高性能应用程序,因此在索引变量中存储如此多的语义是不好的方式。
更好的方法是使用地图。
电子。 G。 Map<Item, Integer> itemStock
和Map<Item, Double> prices
。然后,您也不会对删除操作有任何问题。