配列とは何か?

http://haskell.g.hatena.ne.jp/jmk/20070522/1179805822
を読んで、
http://www-06.ibm.com/jp/developerworks/java/library/j-rtj1/index.shtml

大きなオブジェクトの割り当ては、多くの GC ストラテジーにとって厄介な問題です。配列などの単一の大きなオブジェクトに対応するため、ヒープが過剰にフラグメント化されていることは珍しくありません。大規模な割り当て要求に対応するには、ヒープをデフラグ (または圧縮) し、多数の小さな空きメモリー領域を大きなメモリー領域に合体しなければならないため、長い一時停止が発生します。そのため、Metronome では、配列を対象とした新しい 2 レベル・オブジェクトモデル、arraylet を使用しています。arraylet は大きな配列を小さな配列に分割し、大きな配列の割り当てでもヒープをデフラグすることなく簡単に対応できるようにします。arraylet オブジェクトの最初のレベルはスパインと呼ばれ、このレベルには、配列の分割された各部分 (リーフ) へのポインターのリストが含まれます。それぞれのリーフは同じサイズなので、配列に含まれる特定の要素を見つけるための計算は単純化されます。また、コレクターが適切な空きスペースを見つけて各リーフを割り当てるにも容易です。このように、配列を小さな連続していない部分に分割することによって、通常ヒープで発生する多数の小さな空き領域内に、配列を圧縮せずに割り当てることを可能にしています。

という記述を思い出す。
配列が何かということは、なかなかややこしい話のようだ(違)