ArrayListクラス

提供:AB開発Wiki
2007年2月12日 (月) 06:14時点におけるEgtra (トーク | 投稿記録)による版 (動的配列クラス)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動検索に移動

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を返します。