如何从 ArrayList 中的特定索引更新元素

how to update an element from specific index in ArrayList

如何更新包含另一个 ArrayList 的 Arrayist 中的元素?

我有一个名为 Product 的 class,它由 nametypecurrentQuantitypurchaseQuantity 组成。我创建了一个名为 productList 的 ArrayList 来存储已添加到 Product class.

中的每个产品的数据

我的问题是当我转到另一个 class 并且我想更新索引 i 的特定产品的 toPurchase 元素时,我现在对如何做感到困惑所以。

我已在 class 中声明:

private ArrayList<Product> productList;

我试过这样做:

productList.set(productIndex, product.setPurchaseQuantity(pPurchaseQuantity)); 

但是 product.setPurchaseQuantity(pPurchaseQuantity) 下面有一条红线提到了这一点:

Required type: Product
Provided: void

到目前为止,这些是我的新 class.

中唯一的代码

你基本上没有改变 arrayList 中的任何东西,你想要做的是更新一个已经在这个 arrayList 中引用的对象,为此你可以只获取这个对象并更新(见下文)

productList.get(productIndex).setPurchaseQuantity(pPurchaseQuantity)

类型不匹配的发生是因为 product.setPurchaseQuantity(pPurchaseQuantity) returns void 但是 productList.set(...) 需要一个 Product 类型的对象作为它的第二个参数。

要更新数量,您需要从productList获取一个Product,然后对检索到的对象进行操作。没有必要再次 设置 这个对象,因为你正在改变这个对象的一个​​属性并且对它的引用仍然在 productList.

Product product = productList.get(productIndex);
product.setPurchaseQuantity(pPurchaseQuantity);