【C#】ArrayListクラス
ArrayList
クラスは、C#における非ジェネリックなコレクションの一つで、任意の型のオブジェクトを格納できる可変長の配列です。配列と異なり、ArrayList
は要素の追加や削除に伴い、サイズを自動的に調整します。
目次
主な特徴
- 動的サイズ:
ArrayList
は要素が追加されると自動的にサイズが増加し、削除されるとサイズが減少します。 - 異なるデータ型を格納可能:
ArrayList
は非ジェネリックであるため、異なるデータ型のオブジェクトを一つのコレクションに格納できます。 - インデックスによるアクセス:
ArrayList
はインデックスを使用して要素にアクセスします。配列と同様に、0ベースのインデックスを使用します。
基本的な操作
1. インスタンスの作成
ArrayList arrayList = new ArrayList();
2. 要素の追加
Add
メソッドを使用して、新しい要素を追加します。
arrayList.Add(10);
arrayList.Add("Hello");
arrayList.Add(true);
3. 要素へのアクセス
インデックスを指定して要素にアクセスします。
object element = arrayList[0]; // 10を取得
ArrayList
はオブジェクト型を格納するため、要素を取り出す際に必要に応じてキャストが必要です。
int number = (int)arrayList[0];
4. 要素の削除
Remove
メソッドを使用して、指定したオブジェクトを削除します。RemoveAt
メソッドでインデックスを指定して削除することも可能です。
arrayList.Remove(10); // 10を削除
arrayList.RemoveAt(0); // 先頭の要素を削除
5. 要素の検索
Contains
メソッドを使用して、指定した要素が含まれているかを確認できます。
bool exists = arrayList.Contains("Hello"); // true
6. サイズの取得
Count
プロパティを使用して、ArrayList
に格納されている要素の数を取得できます。
int size = arrayList.Count;
メリットとデメリット
メリット
- 柔軟性: 異なる型のデータを一つのコレクションに格納できるため、柔軟なデータ管理が可能です。
- 動的なサイズ: 要素の追加や削除に伴い、自動的にサイズが調整されるため、配列よりも柔軟に使用できます。
デメリット
- 型の安全性が低い: 異なる型のデータを格納できる反面、取り出す際にキャストが必要で、間違ったキャストによるランタイムエラーのリスクがあります。
- パフォーマンス: 非ジェネリックコレクションであるため、ボクシングやアンボクシングが発生し、パフォーマンスに影響を与える可能性があります。
使用例
以下は、ArrayList
を使用して、複数の異なるデータ型の要素を格納し、それらを処理する簡単な例です。
using System;
using System.Collections;
class Program
{
static void Main()
{
ArrayList arrayList = new ArrayList();
// 異なる型の要素を追加
arrayList.Add(100);
arrayList.Add("C#");
arrayList.Add(true);
// 要素を表示
foreach (object item in arrayList)
{
Console.WriteLine(item);
}
// 要素を削除
arrayList.Remove(100);
// 残りの要素を表示
foreach (object item in arrayList)
{
Console.WriteLine(item);
}
}
}
まとめ
ArrayList
クラスは、可変長で異なる型のデータを格納できる便利なコレクションですが、ジェネリック型のList<T>
が推奨されることが多いです。ArrayList
の柔軟性が必要な場合や、レガシーコードとの互換性を考慮する場合に使用するのが一般的です。
ディスカッション
コメント一覧
まだ、コメントがありません