JAVAコーディング

ArrayListとArray

2008年03月19日
JAVAにはArrayListとArrayがあるようです。どう違うのでしょう。

ソースを見ていると、ArrayListは2次元配列のように思えます。見よう見真似でコーディングしてみたのですが、困ったことがおこりました。

ArrayListの1要素の値更新ができないのです。参考にしたソースは、1次元配列から、ArrayListにAddしています。Addした後のArrayListの値を更新しようとしてもできないのです。1レコード(行)の削除や更新処理はできるのです。


仕方ないので、1次元配列の値を更新してからArrayListにAddすることにしました。


ところが、ArrayListはAddした1次元配列の値を参照で受け取っているようなのです。

1. 1次元配列Aに値を代入
2. ArrayList1にAdd
3. 1次元配列Aの値を変更
4. ArrayList2にAdd

という処理をしたのですが、先にAddしたArrayList1の値も変更されてしまいます。

ArrayList1の値はそのままに、ArrayList2の値だけを変更したかったのですが。


そこで、1次元配列もAとBを作成し、それぞれArrayList1、ArrayList2にAddしました。今度は思うように動作しました。


どうやらArrayListは2次元配列とは異なるようです。