Listクラスはどうやら名前だけで内部構造は配列ではないかという疑惑が湧いてきました。プロパティの次の1文を社内の人間に指摘されたからであります。超えた場合は、古い要素をコピーして新しい要素を追加する前に、内部配列を自動的に再割り当てすることによって、リストの容量が増加します。クラスは本当に配列なのかを検証してみることにしました。配列かリストかを検証するには、Listクラスの前後に値を追加すれば検証できます。リスト構造の場合、オブジェクトを追加してもポインタを付け替えるだけなのでリストの前後どちらに追加しても速度は変わらない。配列の場合、リストの後ろへの追加は高速だが、リストの先頭に追加する場合は配列全体をずらさないといけないので遅くなる。クラスの構造を解析するために以下のようなプログラムを作成しました。検証プログラムをそれぞれ5回実行して平均をとりました。クラスの内部構造は配列だ言うことが分かります。指定した場合とそうでない場合の速度を比較してみました。指定をしないと変更してもう一度検証してみました。指定のありとなしの比較です。先頭に追加する場合は逆に速くなっています。指定しない場合は、指定した場合よりもシフトする要素数が少なくてすむため若干速く高速になったものと推測されます。実際にこうして計測してい見ると面白発見があるものです。HTMLで作成されています。このサイトはリンクフリーです。