C#のArrayListクラスにおけるCapacityプロパティとは?使い方を解説
ArrayListクラスのCapacityプロパティは、そのArrayListが格納できる要素の数を取得または設定するためのプロパティです。
Capacity(容量)は、実際に格納されている要素数を表すCount(カウント)よりも常に大きいか等しい値になります。Capacityプロパティへのアクセスは以下のように記述します。
arrList.Capacity
容量の仕組み
ArrayListの既定の容量は4です。要素を追加していき、既定の容量を超えると、容量は自動的に2倍に拡張されます。例えば、5つの要素を追加した場合、容量は8に拡張されます。以降も同様に、容量を超えた時点で順次2倍ずつ拡張されていきます。
この仕組みにより、ArrayListは要素の追加・削除を柔軟に行えますが、頻繁な容量拡張はパフォーマンスに影響を与える可能性があるため、あらかじめ要素数が分かっている場合はCapacityを設定しておくと効率的です。
サンプルコード
以下のコードを実行すると、C#におけるCapacityプロパティの動作を確認できます。先ほど説明した容量の拡張の挙動も併せて確認してみましょう。
using System;
using System.Collections;
class Demo {
public static void Main() {
ArrayList arrList = new ArrayList();
arrList.Add(19);
arrList.Add(44);
arrList.Add(22);
ArrayList arrList2 = new ArrayList();
arrList2.Add(19);
arrList2.Add(44);
arrList2.Add(64);
arrList2.Add(32);
arrList2.Add(99);
Console.WriteLine("ArrayList1 - Total elements: " + arrList.Count);
Console.WriteLine("ArrayList1 - Capacity: " + arrList.Capacity);
Console.WriteLine("ArrayList2 - Total elements: " + arrList2.Count);
Console.WriteLine("ArrayList2 - Capacity: " + arrList2.Capacity);
}
}実行結果
ArrayList1 - Total elements: 3 ArrayList1 - Capacity: 4 ArrayList2 - Total elements: 5 ArrayList2 - Capacity: 8
実行結果の解説
この出力から、次のことが読み取れます。
- ArrayList1は3つの要素しか持っていませんが、既定の容量である4が確保されています。
- ArrayList2は5つの要素を持つため、既定の容量4では足りなくなり、容量が2倍の8に自動的に拡張されています。
このように、Capacityプロパティを使うことで、ArrayList内部で確保されているメモリ上の容量を確認できます。Countとの違いを理解しておくことは、C#のコレクションを扱ううえで重要なポイントです。
-
C#のSortedListクラスのCapacityプロパティとは?意味と使い方を解説
C#のSortedListクラスにおけるCapacityプロパティとはSortedListクラスのCapacity(容量)プロパティは、SortedListが保持できる要素数の最大サイズを示すプロパティです。つまり、内部的に確保されている配列が格納できる要素の総数を表しています。なお、SortedListの既定の容量(デフォルト値)は16に設定されています。要素を追加していき容量を超えると、容量は自動的に拡張される仕組みになっています。以下のコードを実行すると、C#でSortedListクラスのCapacityプロパティを実際に確認できます。コード例using System; using Sy
-
C#のArrayListクラスにおけるCountプロパティの使い方を解説
C#のArrayListクラスには、リストに格納されている要素の数を取得するためのCountプロパティが用意されています。このプロパティを使うことで、ArrayList内の現在の要素数を簡単に確認できます。ArrayListへの要素の追加まず、Addメソッドを使ってArrayListに要素を追加します。ArrayList arrList = new ArrayList(); arrList.Add(98); arrList.Add(55); arrList.Add(65); arrList.Add(34);上記のコードでは、4つの整数値(98、55、65、34)をArrayListに追加して