使用此 Java 代码:
// create the items list
List<Item> items = new ArrayList<Item>();
// ... (add some elements into the list so that it is not empty)
// iterating ArrayList<Item> from right to left we find the position
// based on the `if` condition satisfied for an item property
int pos = 0;
for (int j = items.size() - 1; j >= 0; j--) {
Item item = items.get(j);
if (item.property <= 7) {
pos = j + 1; break;
}
}
// add new item on the found above position
Item it = new Item();
if (pos == items.size()) {
items.add(it);
} else {
items.add(pos, it);
}
我想知道这个语句Item item = items.get(j);
是否会因为使用而需要一些额外的时间来执行ArrayList
。例如,假设我们需要将新项目添加到末尾,然后通过调用get()
项目列表将仅从左侧迭代它,这是多余的。我希望使用Deque
结构而不是ArrayList
.
您能推荐什么,也许我完全错了,因为新元素也可以在开始时添加,尽管目标是从右侧迭代到左侧。