如图所示,在一次运行一个方法后,我想删除旧项目,并为下一次计算做准备,但我想知道如何从指定的索引开始删除数组列表中的元素,如队列,遵守 FIFO 算法?
问问题
12901 次
3 回答
15
您可以使用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
于 2013-09-02T21:05:00.803 回答
1
只需为此使用remove()方法。
假设您要删除索引从 20 到 30 的元素ArrayList
:
ArrayList<String> list = ...
for (int i = 0; i < 10; i++) { // 30 - 20 = 10
list.remove(20);
}
20
删除index 处的第一个元素后,元素21
将移动到 index 20
。因此,您必须删除索引处的元素 10 次20
才能删除接下来的 10 个元素。
于 2013-09-02T20:56:26.193 回答
0
由于您没有编写高性能应用程序,因此在索引变量中存储如此多的语义是一种不好的风格。
更好的方法是使用地图。
例如。Map<Item, Integer> itemStock
和Map<Item, Double> prices
。然后,您也不会对删除操作有任何问题。
于 2013-09-02T21:02:29.387 回答