gpt4 book ai didi

java - 从 ArrayList 中删除特定元素

转载 作者:行者123 更新时间:2023-12-02 02:45:50 25 4
gpt4 key购买 nike

我需要帮助从 arrayList 中删除刚刚添加的元素。

我有一个private static ArrayList<Position> positions = new ArrayList<>()我向其中添加 Position 类的对象带参数name , quantity ,和price

我有一个方法将对象添加到列表中,如果第二次添加相同的产品,则应该将数量添加到该名称的第一个对象中并删除第二个对象。

到目前为止我有这个方法:

public void addPosition(Position p) {

for (Position poz: positions) {
if (poz.getname().equals(p.getname())) {
poz.setquantity(poz.getquantity() + p.getquantity());
}
} positions.add(p);

}

添加数量效果很好,但我在删除具有重复名称的元素时遇到了问题。

请帮忙。

最佳答案

您不应添加重复的项目然后将其删除。只需声明一个正确处理添加项目的方法即可;也就是说,如果项目不存在,则添加该项目;如果存在,则更新数量。

它应该看起来像这样:

public void addPosition(Position addition) {

//flag to track whether the new item exists in the list
boolean itemExists = false;

//go through the list looking for an item with the passed name to update
for (Position existing : positions) {
if (existing.getName().equals(addition.getName())) {
existing.setQuantity(existing.getQuantity() + addition.getQuantity());
itemExists = true;
}
}

//if no matching item was found, add the new item
if (!itemExists) {
positions.add(addition);
}
}

以上应该有效。如果您关心性能,最好使用 HashMap,这样您就可以按名称查找 Position,而不是每次都循环遍历整个列表。

关于java - 从 ArrayList 中删除特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44597268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com