SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

.NET Frameworkの代表的なコレクションと使い方

System.Collections名前空間直下の主なコレクション

ArrayList(配列リスト)

 ArrayListは、動的に大きさを変化させられる、いわゆる動的配列タイプのデータ構造を提供してくれるコレクションです。Array(配列)という名称なので、同一の型しか納められないような気がしてしまいますが、一つのArrayListに対して複数の型のオブジェクトを格納することができます。

ArrayListサンプルプログラムの解説

サンプルプログラムの一部抜粋
ArrayList al = new ArrayList(); // Array Listを用意

/* Array Listに要素を追加 */
al.Add(1);
al.Add('A');
al.Add("hoge");
al.Add(3.14);
al.Add(true);

Console.WriteLine("Array List Count: " + al.Count); // 要素数の表示

/* すべての要素について、内容とその型を表示させる */
for (int i = 0; i < al.Count; i++)
{
    Console.WriteLine("{0,5} : {1}", al[i], al[i].GetType());
}
サンプルプログラムの実行結果
Array List Count: 5
    1 : System.Int32
    A : System.Char
 hoge : System.String
 3.14 : System.Double
 True : System.Booleannt

 ArrayListという名称上、リスト構造と同じように感じるかもしれませんが、要素へのアクセスにかかる時間はO(1)と、通常のリスト構造がとる要素へのアクセス時間O(n)に比べて高速です。

ArrayListの基本的な使い方

 ArrayListの基本的な使い方は、

  • Add(value)メソッドを用いて末尾に要素を追加
  • Insert(value)メソッドで指定位置に要素を追加
  • ArrayList[N]でN番目のデータを呼び出す

 という3つの手順です。さらにIndexOfLastIndexOfメソッドを使うことで、要素の何番目に目的のデータが存在するかを調べることもできます。いらなくなった要素はRemoveメソッドを用いて削除し、すべての要素を削除するにはClearメソッドを用います。

ArrayListを使う上での注意点

 ArrayListには、その要素をソートするためにSortメソッドが用意されていますが、このメソッドによって必ずしも意図したとおりに並べ替えられるとは限りません。というのも、今回のサンプルプログラムのようにどれが先頭に来るのか一見してわからないデータが格納されている場合があるからです。その場合にはSortメソッドで正しく並べ替えられないばかりか、ソート済みのデータを前提とするBinarySearchメソッドも正しく動作する保証がありませんのでご注意ください。

次のページ
BitArray(ビット配列)

この記事は参考になりましたか?

特集記事連載記事一覧

もっと読む

この記事の著者

太田 晃(オオタ アキラ)

 ブログ(http://repse.blogspot.com/)では、coLinux上にMinGWを用いてクロスコンパイル環境を構築し、そのうえでSDLやOpenGLを使ってWindows向けのプログラムを書くとか、海外のソフトウェアを(勝手に)日本語化するとか、Windowsのインデックスサービ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3640 2009/03/23 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー