Product.java(setStock追加)
public class Product {
private String name;
private int stock;
public Product(String name, int stock) {
this.name = name;
this.stock = stock;
}
public String getName() {
return name;
}
public int getStock() {
return stock;
}
// 在庫数を更新するsetterメソッドを追加
public void setStock(int stock) {
this.stock = stock;
}
}
ProductUtil.java
import java.util.ArrayList;
public class ProductUtil {
public static void updateStockByName(ArrayList<Product> products, String keyword, int newStock) {
boolean found = false;
for (int i = 0; i < products.size(); i++) {
Product p = products.get(i);
if (p.getName().equals(keyword)) {
p.setStock(newStock); // 在庫を更新
System.out.println(p.getName() + "の在庫数を" + newStock + "に更新しました");
found = true;
break;
}
}
if (!found) {
System.out.println("該当商品なし");
}
}
}
解説
1. setStock()
を使う
- Javaの慣習として、フィールドは
private
にし、変更はメソッド経由で行う - 直接
p.stock = ...
のようには書かない
2. equals()
で商品名の一致を確認
- 文字列比較は
==
ではなく必ず.equals()
を使う
3. 見つかったかどうかを boolean found
で記録
- 検索パターンでは毎回使う基本構造
- 最後に
"該当商品なし"
の出力制御に使える
👉 Just Keep Typing, Baby!では、この「配列修羅道」でつまづいた人向けの解説をしています。こちらもぜひ!