ArrayListに格納した後で、インスタンス変数を上書きした際の参照先
下記コードで、1度ArrayListにh1を格納した後に
java
1h1 = new Hero(); 2h1.name = "ミナト";
上記のコードを記述すると、
ArrayListからh1要素のremoveが出来なくなりました。
1度格納した後に、再度おなじ変数にインスタンスを生成して先頭番地を
代入した場合、ArrayListに格納されている参照先と、新しいh1の参照先
は違うのでしょうか?
該当のソースコード
java
1import java.util.ArrayList; 2import java.util.List; 3 4class Hero { 5 public String name; 6} 7 8public class EqualsOverRide { 9 10 public static void main(String[] args) { 11 List<Hero> list = new ArrayList<Hero>(); 12 13 Hero h1 = new Hero(); 14 h1.name = "ミナト"; 15 16 list.add(h1); 17 System.out.println("要素数=" + list.size()); 18 19 h1 = new Hero(); 20 h1.name = "ミナト"; 21 22 list.remove(h1); 23 System.out.println("要素数=" + list.size()); 24 } 25}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。