ArrayListクラス
ArrayList クラスは要素数を実行時に増減できる配列です。
クラスの機能
継承するインタフェース
プロパティ
Capacity
内部的に保持するメモリの量を取得・設定できます。
Const Virtual Function Capacity() As Long Virtual Sub Capacity(c As Long)
- 引数・戻り値
- メモリの量を要素数単位で渡され、もしくは返されます。
新たな値を設定すると、それに合わせてメモリの量が増減します。ただしCount以下に減らすことは出来ません。
Count
現在の要素数を取得します。
Const Virtual Function Count() As Long
- 戻り値
- 要素数を返します。
IsFixedSize
このインスタンスを通して要素数の変更が不可能であるかどうかを返します。
Const Virtual Function IsFixedSize() As Boolean
- 戻り値
- 要素数の変更が不可能であればTrue、可能であればFalseが返ります。
IsFixedSize = Trueであっても既存の要素の値を変更することは可能です。また、たとえIsFixedSize = Falseであっても、インスタンスがConst修飾されている場合、要素数の変更は不可能です。
同期されたインスタンスを作るにはReadOnlyメソッドを使用します。
IsReadOnly
このインスタンスが読み取り専用(このインスタンスを通じての書き換え操作が不可能)であるかどうかを返します。
Const Virtual Function IsReadOnly() As Boolean
- 戻り値
- 読み取り専用であればTrue、そうでなければFalseが返ります。
たとえIsReadOnly = Falseであっても、インスタンスがConst修飾されている場合、全ての書き換え操作は不可能です。
同期されたインスタンスを作るにはReadOnlyメソッドを使用します。
IsReadOnly
このインスタンスに対する操作が同期されている(スレッド安全になっている)かどうかを返します。
Const Virtual Function IsSynchronized() As Boolean
- 戻り値
- 同期されていればTrue、されていなければFalseが返ります。
同期されたインスタンスを作るにはSynchronizedメソッドを使用します。
メソッド
コンストラクタ
ArrayListのインスタンスを構築します。
Sub ArrayList() Sub ArrayList(ByRef c As ICollection) Sub ArrayList(capacity As Long)
- c
- 要素のコピー元となるICollection インタフェース。
- capacity
- 予めしておくメモリの量(要素数単位)
デストラクタ
ArrayListのインスタンスを破棄します。
Virtual Sub ~ArrayList()
Operator []
要素を参照します。
Const Virtual Function Operator [](i As Long) ByRef As Object
- i
- 参照する要素数
- 戻り値
- それに対応する要素
Operator []=
要素を設定します。
Virtual Sub Operator []=(i As Long, ByRef x As Object)
- i
- 設定する要素数
- x
- 設定する要素
Add
末尾に要素を追加します。
Virtual Function Add(ByRef x As Object) As Long
- x
- 追加する要素
AddRange
複数要素を追加します。
Virtual Sub AddRange(ByRef c As ICollection)
- c
- 追加する要素を含むICollection インタフェース
cの要素全てが順にこのインスタンスへ追加されます。
BinarySearch
二分検索を行います。
Const Virtual Function BinarySearch(ByRef x As Object) Const Virtual Function BinarySearch(ByRef x As Object, ByRef c As IComparer) As Long Const Virtual Function BinarySearch(index As Long, count As Long, ByRef x As Object, c As IComparer) As Long
- x
- 検索するオブジェクト
- c
- 検索の際要素の比較に用いられるIComparer インタフェースのオブジェクト
- index
- 開始する要素数
- count
- 検索する長さ
- 戻り値
- 要素の位置
要素は予め昇順に並べられている必要があります。そのためにはSortメソッドが利用できます。indexとcountを指定した場合、[index]から[index + count - 1]の範囲で検索されます。
Clear()
全ての要素を削除します。
Virtual Sub Clear()
Clearを呼ぶとCountの値は0になります。
Clone()
このインスタンスの複製を作ります。
Virtual Function Clone() As *ArrayList
- 戻り値
- 複製されたArrayListのインスタンス
Contains
指定されたインスタンスに等しい要素が存在するか調べます。
Virtual Function Contains(ByRef x As Object) As Boolean
- x
- 調べるインスタンス
- 戻り値
- 等しい要素があればTrue、なければFalse
GetEnumerator
列挙子を返します。
Const Virtual Function GetEnumerator() As *IEnumerator Const Virtual Function GetEnumerator(index As Long, count As Long) As *IEnumerator
- index
- 開始する要素数
- count
- 列挙する長さ
- 戻り値
- IEnumerator インタフェースでの列挙子。
GetRange
部分的な範囲を指すArrayListを作ります。
Virtual Function GetRange(index As Long, count As Long) As ArrayList
- index
- 開始する要素数
- count
- 範囲の長さ
- 戻り値
- 基のArrayListの一部分を指すArrayList。
IndexOf
指定されたオブジェクトに等しい要素がある最初の位置を検索します。
Const Virtual Function IndexOf(ByRef x As Object) As Long Const Virtual Function IndexOf(ByRef x As Object, startIndex As Long) As Long Const Virtual Function IndexOf(ByRef x As Object, startIndex As Long, count As Long) As Long
- x
- 検索するオブジェクト
- index
- 開始する要素数
- count
- 検索する長さ
- 戻り値
- オブジェクトの存在する位置。見付からなければ-1。
Insert
配列の途中に要素を挿入します。
Virtual Sub Insert(index As Long, ByRef x As Object)
- index
- 挿入する位置。
- x
- 挿入するオブジェクト
InsertRange
配列の要素に複数要素を挿入します。
Virtual Sub InsertRange(index As Long, ByRef c As ICollection)
- index
- 挿入する位置。
- c
- 挿入するオブジェクトを含むICollection インタフェース
LastIndexOf
指定されたオブジェクトに等しい要素がある最後の位置を検索します。
Const Virtual Function LastIndexOf(ByRef x As Object) As Long Const Virtual Function LastIndexOf(ByRef x As Object, startIndex As Long) As Long Const Virtual Function LastIndexOf(ByRef x As Object, startIndex As Long, count As Long) As Long
- x
- 検索するオブジェクト
- index
- 開始する要素数
- count
- 検索する長さ
- 戻り値
- オブジェクトの存在する位置。見付からなければ-1。
Remove
要素を削除します。
Virtual Sub Remove(ByRef x As Object)
- x
- 削除する要素
要素を順に調べ、最初にxと等しかった要素が削除されます。削除した位置より後の要素は前へ詰められます。
RemoveAt
指定された位置の要素を削除します。
Virtual Sub RemoveAt(i As Long)
- i
- 削除する要素の位置
削除した位置より後の要素は前へ詰められます。
RemoveRange
複数要素の削除を行います。
Virtual Sub RemoveRange(index As Long, count As Long)
- index
- 開始する要素数
- count
- 削除する長さ
countで指定された数だけ要素が削除されます(Countが減ります)。削除した位置より後の要素は前へ詰められます。
Reverse
内容を反転します。
Virtual Sub Reverse() Virtual Sub Reverse(startIndex As Long, count As Long)
- index
- 開始する要素数
- count
- 反転する長さ
SetRange
複数の要素を設定します。
Virtual Sub SetRange(index As Long, ByRef c As ICollection)
- index
- 開始する要素数
- c
- 設定する要素を含んだICollection インタフェースのオブジェクト
Sort
整列させます。
Virtual Sub Sort() Virtual Sub Sort(ByRef c As IComparer) Virtual Sub Sort(index As Long, count As Long, ByRef c As IComparer)
- c
- 検索の際要素の比較に用いられるIComparer インタフェースのオブジェクト
- index
- 開始する要素数
- count
- 整列する長さ
TrimToSize
確保するメモリの量を実際に使用している量まで減らします。
Virtual Sub TrimToSize()
静的公開メソッド
Adapter
IList インタフェースへのアダプタを提供します。
Static Function Adapter(ByRef l As IList) As ArrayList
- l
- IList インタフェースのインスタンス
- 戻り値
- 引数のIListへのラッパ
このメソッドを使用するとIListのインスタンスをArrayListとして扱うことができるようになります。
FixedSize
要素固定にするラッパを提供します。
Static Function FixedSize(ByRef l As ArrayList) As *ArrayList Static Function FixedSize(ByRef l As IList) As *IList
- l
- 基となるリスト(ArrayList クラスもしくはIList インタフェース)
- 戻り値
- 要素数固定のラッパ
このメソッドが返すインスタンスはIsFixedSizeプロパティでTrueを返します。
Repeat
全ての要素が同じ値であるインスタンスを作ります。
Static Function Repeat(ByRef x As Object, count As Long) As *ArrayList
- x
- 各要素
- count
- 要素数
- 戻り値
- ArrayListインスタンス
ReadOnly
読み取り専用にするラッパを提供します。
Static Function ReadOnly(ByRef l As ArrayList) As ArrayList Static Function ReadOnly(ByRef l As IList) As IList
- l
- 基となるリスト(ArrayList クラスもしくはIList インタフェース)
- 戻り値
- 読み取り専用のラッパ
このメソッドが返すインスタンスはIsReadOnlyプロパティでTrueを返します。
Synchronized
同期アクセスを行うようにするラッパを提供します。
Static Function Synchronized(ByRef l As ArrayList) As ArrayList Static Function Synchronized(ByRef l As IList) As *IList
- l
- 基となるリスト(ArrayList クラスもしくはIList インタフェース)
- 戻り値
- 同期アクセスを行うラッパ
このメソッドが返すインスタンスはIsSynchronizedプロパティでTrueを返します。