ArrayListやLinkedListクラスについて質問です。
StringやIntなどを addを使ってリストに加えていく例が多いですが、
double型の二次元配列をリストに加えていくと、なぜかうまくいきません。


具体的に示すと、

double[][] Num = new double[7][9] /*7×9の表を表現した二次元配列*/
ArrayList TableList = new TableList<double[][]>();

(Num[][]に値が入った状態になる)

TableList.add(Num);

この後、TableList.get(0)として、一番初めの要素の値を参照するようにしたのですが、
addをしていくたびに、0番目の要素が一番最後に読み込んだ物に変わります。
また、別のn番目の要素を参照しても、getでは新しいものしか返ってきません。
しかし、要素の数をsize()で調べると、キチンとaddで要素を加えた回数分だけ返ってきます。

数時間、書籍やネット、JavaDocを参照しても分かりません。
ここは、AllayListを2つ、3つ組み合わせるほうが得策なのでしょうか?
また、この使い方に問題があるのでしょうか?(泣