ProductUtil.java
import java.util.ArrayList;
public class ProductUtil {
public static void searchByName(ArrayList<Product> products, String keyword) {
boolean found = false;
for (int i = 0; i < products.size(); i++) {
Product p = products.get(i);
if (p.getName().equals(keyword)) {
System.out.println(p.getName() + "の在庫数: " + p.getStock());
found = true;
break;
}
}
if (!found) {
System.out.println("該当商品なし");
}
}
}
解説
① searchByName(ArrayList<Product> products, String keyword)
を作る理由
- ロジックを**再利用可能な形(メソッド)**に切り出すことで、複数のテストケースに使い回せる
- ユーザー入力(Scanner)を排除し、純粋に検索処理だけをテストできる
② for文で全件を走査
products.get(i)
で1件ずつProduct
を取り出すp.getName().equals(keyword)
で名前が一致するかチェック==
ではなく.equals()
を使う理由:Javaでは文字列は中身で比較する必要があるため
③ 見つかったらすぐに出力して break
- 同じ名前の商品が複数存在することは今は考慮しない(最初に見つかった1件で十分)
④ 最後まで見つからなければ "該当商品なし"
を出力
boolean found = false
を使って、見つかったかどうかの状態を記録- 最後に
if (!found)
で出力を制御
👉 Just Keep Typing, Baby!では、この「配列修羅道」でつまづいた人向けの解説をしています。こちらもぜひ!