Java Silver の資格を目指し勉強中です。
下記のソースを実行したときの結果
B
C
A
とコンソールに出力されます。
参考書にはequalsメソッドがtrueを戻すため「同じ」ものとして削除する為とあります。
<わからない事>
Itemはコンストラクタである為、インスタンスのタイミングで実行されるのはわかりますが、equalsメソッドがどのタイミングでが呼ばれているのかわかりません。
長文で申し訳ありませんが、回答していただけると助かります。
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) { if (obj instanceof Item) { Item tmp = (Item) obj; if (tmp.name.equals(this.name)) { return true; } } return false; } public String getname() { return name; } }
import java.util.ArrayList; public class hosotest { public static void main(String[] str) { ArrayList<Item> list = new ArrayList<>(); list.add(new Item("A", 1)); list.add(new Item("B", 2)); list.add(new Item("C", 3)); list.add(new Item("A", 1)); list.remove(new Item("A", 5)); for (Item item : list) System.out.println(item.getname()); } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/03 05:08 編集
2020/06/03 05:10
2020/06/03 05:12
2020/06/03 05:12
2020/06/03 05:22
2020/06/03 05:23
2020/06/03 05:28
2020/06/03 05:31
2020/06/03 05:32
2020/06/03 05:32
2020/06/03 05:35
2020/06/03 05:36