0
equals()の等値と等価
下記のコードでremoveで削除できないのはequals()のオーバーライドをしていないからと書いてあるのですが、
equals()は等値判定をしているのでh1がnewされて新しいアドレスになったらListに入っているh1も新しい
アドレスのなるのではないでしょうか。
Listの入っているh1とnewした後のh1は違うということでしょうが、配列に入ったクラス型は変化しないという
理解でいいでしょうか?
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Hero> list=new ArrayList<>();
Hero h1=new Hero();
h1.name="ミナト";
list.add(h1);
System.out.println(list.size());
h1=new Hero();
h1.name="ミナト";
list.remove(h1);
System.out.println(list.size());
}
}
public class Hero {
public String name;
}