多次元配列を実装したコレクションフレームワークはありますか?

あと下のようなモデルはどのように実装するのがいいんでしょう?
一つのStringデータA_iに対して,複数のStringデータX_i、 Y_i、Z_iが対応しているとします.
そして、こうしたA_iがたくさんあるとします.(i=1,2,3,...)
ただし、A_iの個数はモデルを作る時点ではおおざっぱにしかわかりません.

1.全ての要素がStringの二次元配列をつくる.
2.とりあえずArrayListに登録して、あとから切り分ける.

上の1.2.を考えて,2が一番いいとは思うのですが他にいい方法はありませんか?
できればなるべく速い方法がよいのですが、プログラムのことはあまり詳しくないので
どれが速いかなどもよくわかりません.