前提
Java Silver資格の勉強中の者です。
黒本の問題を解いておりますが
理解できなかったのでこちらで質問させていただきます。
お手数ではございますが、ご教示いただけますと幸いです。
実現したいこと
本設問における不明点です。
mainメソッド中で、
(10行目 ※1)removeメソッドを呼び出しておりますが、
この処理の流れがわからなかったです。
Itemクラスに(8行目 ※2)equalsメソッドがあり、
変数nameが一致していればequalsはtrueを返す、というところは理解できています。
しかし、removeメソッドの呼び出しを行った際、
どのタイミングでequalsメソッドの条件確認をしているかが
どうしても理解できずにおります。
拙い説明なこと、お許しください。
問題文とコード
次のプログラムをコンパイル、実行したときの結果として、正しいものを選べ。
Itemクラス
public class Item { private String name; private int price; public Item (String name, int price) { this.name = name; this.price = price; } public boolean equals (Object obj) { //※2 if (obj instanceof Item) { Item tmp = (Item) obj; if (tmp.name.equals (this.name)) { return true; } } return false; } public String getName() { return name; } }
Mainクラス
import java.util.ArrayList; public class Main { public static void main (String [] args){ ArrayList<Item> list = new ArrayList<>(); list.add(new Item("A", 100)); list.add(new Item("B", 200)); list.add(new Item("C", 300)); list.add(new Item("A", 100)); list.remove(new Item("A", 500)); //※1 for (Item item : list) { System.out.println(item.getName()); } } }
以上です。
大変お手数ですが、解説・ご指導いただけますと幸いです。
何卒宜しくお願い致します。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/10/24 03:53
2022/10/24 04:34