如何从 ArrayList 中的特定索引更新元素
how to update an element from specific index in ArrayList
如何更新包含另一个 ArrayList 的 Arrayist 中的元素?
我有一个名为 Product
的 class,它由 name
、type
、currentQuantity
、purchaseQuantity
组成。我创建了一个名为 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);
如何更新包含另一个 ArrayList 的 Arrayist 中的元素?
我有一个名为 Product
的 class,它由 name
、type
、currentQuantity
、purchaseQuantity
组成。我创建了一个名为 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);