こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ArrayListはオブジェクトのポインタを渡している?

ArrayListはオブジェクトのポインタを渡している?

例えば、一つのメソッド内に以下のように書くと、出力は最下部のようになります。
listに入れたモデルを取り出さずにModelを変更しても、listに入れたモデルを変更したのと同じことが出来ています。

C言語で言うところの(Cはあまり覚えていませんが…)、ポインタを渡しているようなイメージになるのでしょうか?

--コード--

Model model1 = new Model("model1");
Model model2 = new Model("model2");

ArrayList list = new ArrayList<Model>();

list.add(model1); list.add(model2);
showList(list);

model1.setName("model1_");

showList(list);


--出力--

model1
model2
model1_
model2

投稿日時 - 2010-06-13 21:34:10

QNo.5966448

すぐに回答ほしいです

質問者が選んだベストアンサー

Java としては「ポインタ」という表現はしませんが, Java のオブジェクトは基本的に全部「ポインタ」です.

投稿日時 - 2010-06-13 23:51:13

ANo.1

このQ&Aは役に立ちましたか?

11人が「このQ&Aが役に立った」と投票しています

回答(2)

それはそうでしょうね。

それを回避したいのであれば、copy() を使う訳です。(copy() は必要に応じてオーバーライドしておかないといけない)

投稿日時 - 2010-06-14 00:53:17

あなたにオススメの質問