まず、一つの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){
if(obj instanceof Item){
Item tmp = (Item)obj;
if(tmp.name.equals(this.name)){
return true;
}
}
return false;
}
}
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));
for(Item item : list){
System.out.println(item.getName());
}
}
}
}
###質問内容
こちらの2つのclassがあります。
Mainクラスで、ArrayListを使って、Item型のインスタンスを追加していきます。
removeメソッドで最初に追加した、Item("A", 100)を削除しています。
ここで質問なのですが、APIではremoveメソッドの戻り値と引数がboolean (Object o)となっています。
Mainクラスの、「list.remove(new Item("A", 500))」と記述するだけで、なぜ、Itemクラスのequalsメソッドが使われているのでしょうか?
詳しく、わかりやすく説明して頂けると助かります。
どうぞ、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。