「ArrayListクラス」の版間の差分

提供:AB開発Wiki
ナビゲーションに移動検索に移動
(ページ ArrayList クラスArrayListクラス へ移動: #127)
 
(同じ利用者による、間の2版が非表示)
1行目: 1行目:
'''ArrayList クラス'''は要素数を実行時に増減できる配列です。
'''ArrayListクラス'''は要素数を実行時に増減できる配列です。


== クラスの機能 ==
==クラスの機能==
=== 継承するインタフェース ===
===継承するインタフェース===
* [[IList インタフェース]]
*[[IListインタフェース]]
* [[ICollection インタフェース]]
*[[ICollectionインタフェース]]
* [[IEnumerable インタフェース]]
*[[IEnumerableインタフェース]]
* [[ICloneable インタフェース]]
*[[ICloneableインタフェース]]


=== プロパティ ===
=== プロパティ ===
52行目: 52行目:
ArrayListのインスタンスを構築します。
ArrayListのインスタンスを構築します。
  Sub ArrayList()
  Sub ArrayList()
  Sub ArrayList(ByRef c As ICollection)
  Sub ArrayList(c As ICollection)
  Sub ArrayList(capacity As Long)
  Sub ArrayList(capacity As Long)
; c
; c
: 要素のコピー元となる[[ICollection インタフェース]]
: 要素のコピー元となる[[ICollectionインタフェース]]型のインスタンス。
; capacity
; capacity
: 予めしておくメモリの量(要素数単位)
: 予めしておくメモリの量(要素数単位)
65行目: 65行目:
==== Operator [] ====
==== Operator [] ====
要素を参照します。
要素を参照します。
  Const Virtual Function Operator [](i As Long) ByRef As Object
  Const Virtual Function Operator [](i As Long) As Object; i
; i
: 参照する要素数
: 参照する要素数
; 戻り値
; 戻り値
: それに対応する要素
: それに対応する要素


==== Operator []= ====
====<nowiki>Operator []=</nowiki>====
要素を設定します。
要素を設定します。
  Virtual Sub Operator []=(i As Long, ByRef x As Object)
  Virtual Sub Operator []=(i As Long, x As Object)
; i
; i
: 設定する要素数
: 設定する要素数
81行目: 80行目:
==== Add ====
==== Add ====
末尾に要素を追加します。
末尾に要素を追加します。
  Virtual Function Add(ByRef x As Object) As Long
  Virtual Function Add(x As Object) As Long
; x
; x
: 追加する要素
: 追加する要素
87行目: 86行目:
==== AddRange ====
==== AddRange ====
複数要素を追加します。
複数要素を追加します。
  Virtual Sub AddRange(ByRef c As ICollection)
  Virtual Sub AddRange(c As ICollection)
; c
; c
: 追加する要素を含む[[ICollection インタフェース]]
: 追加する要素を含む[[ICollectionインタフェース]]のインスタンス。
cの要素全てが順にこのインスタンスへ追加されます。
cの要素全てが順にこのインスタンスへ追加されます。


==== BinarySearch ====
==== BinarySearch ====
二分検索を行います。
二分検索を行います。
  Const Virtual Function BinarySearch(ByRef x As Object)
  Const Virtual Function BinarySearch(x As Object)
  Const Virtual Function BinarySearch(ByRef x As Object, ByRef c As IComparer) As Long
  Const Virtual Function BinarySearch(x As Object, c As IComparer) As Long
  Const Virtual Function BinarySearch(index As Long, count As Long, ByRef x As Object, c As IComparer) As Long
  Const Virtual Function BinarySearch(index As Long, count As Long, x As Object, c As IComparer) As Long
; x
;x
: 検索するオブジェクト
:検索する対象
; c
;c
: 検索の際要素の比較に用いられる[[IComparer インタフェース]]のオブジェクト
:検索の際要素の比較に用いられる[[IComparerインタフェース]]のインスタンス
; index
;index
: 開始する要素数
:開始する要素数
; count
;count
: 検索する長さ
:検索する長さ
; 戻り値
;戻り値
: 要素の位置
:要素の位置
要素は予め昇順に並べられている必要があります。そのためには[[#Sort|Sortメソッド]]が利用できます。indexとcountを指定した場合、[index]から[index + count - 1]の範囲で検索されます。
要素は予め昇順に並べられている必要があります。そのためには[[#Sort|Sortメソッド]]が利用できます。indexとcountを指定した場合、[index]から[index + count - 1]の範囲で検索されます。


116行目: 115行目:
==== Clone() ====
==== Clone() ====
このインスタンスの複製を作ります。
このインスタンスの複製を作ります。
  Virtual Function Clone() As *ArrayList
  Virtual Function Clone() As ArrayList
; 戻り値
; 戻り値
: 複製されたArrayListのインスタンス
: 複製されたArrayListのインスタンス
122行目: 121行目:
==== Contains ====
==== Contains ====
指定されたインスタンスに等しい要素が存在するか調べます。
指定されたインスタンスに等しい要素が存在するか調べます。
  Virtual Function Contains(ByRef x As Object) As Boolean
  Virtual Function Contains(x As Object) As Boolean
; x
; x
: 調べるインスタンス
: 調べるインスタンス
130行目: 129行目:
==== GetEnumerator ====
==== GetEnumerator ====
列挙子を返します。
列挙子を返します。
  Const Virtual Function GetEnumerator() As *IEnumerator
  Const Virtual Function GetEnumerator() As IEnumerator
  Const Virtual Function GetEnumerator(index As Long, count As Long) As *IEnumerator
  Const Virtual Function GetEnumerator(index As Long, count As Long) As IEnumerator
; index
; index
: 開始する要素数
: 開始する要素数
137行目: 136行目:
: 列挙する長さ
: 列挙する長さ
; 戻り値
; 戻り値
: [[IEnumerator インタフェース]]での列挙子。
: [[IEnumeratorインタフェース]]での列挙子。


==== GetRange ====
==== GetRange ====
151行目: 150行目:
==== IndexOf ====
==== IndexOf ====
指定されたオブジェクトに等しい要素がある最初の位置を検索します。
指定されたオブジェクトに等しい要素がある最初の位置を検索します。
  Const Virtual Function IndexOf(ByRef x As Object) As Long
  Const Virtual Function IndexOf(x As Object) As Long
  Const Virtual Function IndexOf(ByRef x As Object, startIndex As Long) As Long
  Const Virtual Function IndexOf(x As Object, startIndex As Long) As Long
  Const Virtual Function IndexOf(ByRef x As Object, startIndex As Long, count As Long) As Long
  Const Virtual Function IndexOf(Bx As Object, startIndex As Long, count As Long) As Long
; x
; x
: 検索するオブジェクト
: 検索するオブジェクト
165行目: 164行目:
==== Insert ====
==== Insert ====
配列の途中に要素を挿入します。
配列の途中に要素を挿入します。
  Virtual Sub Insert(index As Long, ByRef x As Object)
  Virtual Sub Insert(index As Long, x As Object)
; index
; index
: 挿入する位置。
: 挿入する位置。
173行目: 172行目:
==== InsertRange ====
==== InsertRange ====
配列の要素に複数要素を挿入します。
配列の要素に複数要素を挿入します。
  Virtual Sub InsertRange(index As Long, ByRef c As ICollection)
  Virtual Sub InsertRange(index As Long, c As ICollection)
; index
; index
: 挿入する位置。
: 挿入する位置。
; c
; c
: 挿入するオブジェクトを含む[[ICollection インタフェース]]
: 挿入するオブジェクトを含む[[ICollectionインタフェース]]のインスタンス。


==== LastIndexOf ====
==== LastIndexOf ====
指定されたオブジェクトに等しい要素がある最後の位置を検索します。
指定されたオブジェクトに等しい要素がある最後の位置を検索します。
  Const Virtual Function LastIndexOf(ByRef x As Object) As Long
  Const Virtual Function LastIndexOf(x As Object) As Long
  Const Virtual Function LastIndexOf(ByRef x As Object, startIndex As Long) As Long
  Const Virtual Function LastIndexOf(x As Object, startIndex As Long) As Long
  Const Virtual Function LastIndexOf(ByRef x As Object, startIndex As Long, count As Long) As Long
  Const Virtual Function LastIndexOf(x As Object, startIndex As Long, count As Long) As Long
; x
; x
: 検索するオブジェクト
: 検索するオブジェクト
195行目: 194行目:
==== Remove ====
==== Remove ====
要素を削除します。
要素を削除します。
  Virtual Sub Remove(ByRef x As Object)
  Virtual Sub Remove(x As Object)
; x
; x
: 削除する要素
: 削除する要素
227行目: 226行目:
==== SetRange ====
==== SetRange ====
複数の要素を設定します。
複数の要素を設定します。
  Virtual Sub SetRange(index As Long, ByRef c As ICollection)
  Virtual Sub SetRange(index As Long, c As ICollection)
; index
; index
: 開始する要素数
: 開始する要素数。
; c
; c
: 設定する要素を含んだ[[ICollection インタフェース]]のオブジェクト
: 設定する要素を含んだ[[ICollectionインタフェース]]のインスタンス。


==== Sort ====
==== Sort ====
整列させます。
整列させます。
  Virtual Sub Sort()
  Virtual Sub Sort()
  Virtual Sub Sort(ByRef c As IComparer)
  Virtual Sub Sort(c As IComparer)
  Virtual Sub Sort(index As Long, count As Long, ByRef c As IComparer)
  Virtual Sub Sort(index As Long, count As Long, c As IComparer)
; c
; c
: 検索の際要素の比較に用いられる[[IComparer インタフェース]]のオブジェクト
: 検索の際要素の比較に用いられる[[IComparerインタフェース]]のオブジェクト
; index
; index
: 開始する要素数
: 開始する要素数
251行目: 250行目:
=== 静的公開メソッド ===
=== 静的公開メソッド ===
==== Adapter ====
==== Adapter ====
[[IList インタフェース]]へのアダプタを提供します。
[[IListインタフェース]]へのアダプタを提供します。
  Static Function Adapter(ByRef l As IList) As ArrayList
  Static Function Adapter(l As IList) As ArrayList
; l
; l
: [[IList インタフェース]]のインスタンス
: [[IListインタフェース]]のインスタンス
; 戻り値
; 戻り値
: 引数のIListへのラッパ
: 引数のIListへのラッパ
261行目: 260行目:
==== FixedSize ====
==== FixedSize ====
要素固定にするラッパを提供します。
要素固定にするラッパを提供します。
  Static Function FixedSize(ByRef l As ArrayList) As *ArrayList
  Static Function FixedSize(l As ArrayList) As ArrayList
  Static Function FixedSize(ByRef l As IList) As *IList
  Static Function FixedSize(l As IList) As IList
; l
; l
: 基となるリスト(ArrayList クラスもしくは[[IList インタフェース]])
: 基となるリスト(ArrayList クラスもしくは[[IListインタフェース]])
; 戻り値
; 戻り値
: 要素数固定のラッパ
: 要素数固定のラッパ
271行目: 270行目:
==== Repeat ====
==== Repeat ====
全ての要素が同じ値であるインスタンスを作ります。
全ての要素が同じ値であるインスタンスを作ります。
  Static Function Repeat(ByRef x As Object, count As Long) As *ArrayList
  Static Function Repeat(x As Object, count As Long) As ArrayList
; x
; x
: 各要素
: 各要素
281行目: 280行目:
==== ReadOnly ====
==== ReadOnly ====
読み取り専用にするラッパを提供します。
読み取り専用にするラッパを提供します。
  Static Function ReadOnly(ByRef l As ArrayList) As ArrayList
  Static Function ReadOnly(l As ArrayList) As ArrayList
  Static Function ReadOnly(ByRef l As IList) As IList
  Static Function ReadOnly(l As IList) As IList
; l
; l
: 基となるリスト(ArrayList クラスもしくは[[IList インタフェース]])
: 基となるリスト(ArrayListクラスもしくは[[IListインタフェース]])
; 戻り値
; 戻り値
: 読み取り専用のラッパ
: 読み取り専用のラッパ
291行目: 290行目:
==== Synchronized ====
==== Synchronized ====
同期アクセスを行うようにするラッパを提供します。
同期アクセスを行うようにするラッパを提供します。
  Static Function Synchronized(ByRef l As ArrayList) As ArrayList
  Static Function Synchronized(l As ArrayList) As ArrayList
  Static Function Synchronized(ByRef l As IList) As *IList
  Static Function Synchronized(l As IList) As IList
; l
; l
: 基となるリスト(ArrayList クラスもしくは[[IList インタフェース]])
: 基となるリスト(ArrayListクラスもしくは[[IListインタフェース]])
; 戻り値
; 戻り値
: 同期アクセスを行うラッパ
: 同期アクセスを行うラッパ
このメソッドが返すインスタンスは[[#IsSynchronized|IsSynchronizedプロパティ]]でTrueを返します。
このメソッドが返すインスタンスは[[#IsSynchronized|IsSynchronizedプロパティ]]でTrueを返します。


[[Category:Collections 名前空間]]
[[Category:System.Collections名前空間]]

2007年8月5日 (日) 11:40時点における最新版

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(c As ICollection)
Sub ArrayList(capacity As Long)
c
要素のコピー元となるICollectionインタフェース型のインスタンス。
capacity
予めしておくメモリの量(要素数単位)

デストラクタ

ArrayListのインスタンスを破棄します。

Virtual Sub ~ArrayList()

Operator []

要素を参照します。

Const Virtual Function Operator [](i As Long) As Object; i
参照する要素数
戻り値
それに対応する要素

Operator []=

要素を設定します。

Virtual Sub Operator []=(i As Long, x As Object)
i
設定する要素数
x
設定する要素

Add

末尾に要素を追加します。

Virtual Function Add(x As Object) As Long
x
追加する要素

AddRange

複数要素を追加します。

Virtual Sub AddRange(c As ICollection)
c
追加する要素を含むICollectionインタフェースのインスタンス。

cの要素全てが順にこのインスタンスへ追加されます。

BinarySearch

二分検索を行います。

Const Virtual Function BinarySearch(x As Object)
Const Virtual Function BinarySearch(x As Object, c As IComparer) As Long
Const Virtual Function BinarySearch(index As Long, count As Long, 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(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(x As Object) As Long
Const Virtual Function IndexOf(x As Object, startIndex As Long) As Long
Const Virtual Function IndexOf(Bx As Object, startIndex As Long, count As Long) As Long
x
検索するオブジェクト
index
開始する要素数
count
検索する長さ
戻り値
オブジェクトの存在する位置。見付からなければ-1。

Insert

配列の途中に要素を挿入します。

Virtual Sub Insert(index As Long, x As Object)
index
挿入する位置。
x
挿入するオブジェクト

InsertRange

配列の要素に複数要素を挿入します。

Virtual Sub InsertRange(index As Long, c As ICollection)
index
挿入する位置。
c
挿入するオブジェクトを含むICollectionインタフェースのインスタンス。

LastIndexOf

指定されたオブジェクトに等しい要素がある最後の位置を検索します。

Const Virtual Function LastIndexOf(x As Object) As Long
Const Virtual Function LastIndexOf(x As Object, startIndex As Long) As Long
Const Virtual Function LastIndexOf(x As Object, startIndex As Long, count As Long) As Long
x
検索するオブジェクト
index
開始する要素数
count
検索する長さ
戻り値
オブジェクトの存在する位置。見付からなければ-1。

Remove

要素を削除します。

Virtual Sub Remove(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, c As ICollection)
index
開始する要素数。
c
設定する要素を含んだICollectionインタフェースのインスタンス。

Sort

整列させます。

Virtual Sub Sort()
Virtual Sub Sort(c As IComparer)
Virtual Sub Sort(index As Long, count As Long, c As IComparer)
c
検索の際要素の比較に用いられるIComparerインタフェースのオブジェクト
index
開始する要素数
count
整列する長さ

TrimToSize

確保するメモリの量を実際に使用している量まで減らします。

Virtual Sub TrimToSize()

静的公開メソッド

Adapter

IListインタフェースへのアダプタを提供します。

Static Function Adapter(l As IList) As ArrayList
l
IListインタフェースのインスタンス
戻り値
引数のIListへのラッパ

このメソッドを使用するとIListのインスタンスをArrayListとして扱うことができるようになります。

FixedSize

要素固定にするラッパを提供します。

Static Function FixedSize(l As ArrayList) As ArrayList
Static Function FixedSize(l As IList) As IList
l
基となるリスト(ArrayList クラスもしくはIListインタフェース
戻り値
要素数固定のラッパ

このメソッドが返すインスタンスはIsFixedSizeプロパティでTrueを返します。

Repeat

全ての要素が同じ値であるインスタンスを作ります。

Static Function Repeat(x As Object, count As Long) As ArrayList
x
各要素
count
要素数
戻り値
ArrayListインスタンス

ReadOnly

読み取り専用にするラッパを提供します。

Static Function ReadOnly(l As ArrayList) As ArrayList
Static Function ReadOnly(l As IList) As IList
l
基となるリスト(ArrayListクラスもしくはIListインタフェース
戻り値
読み取り専用のラッパ

このメソッドが返すインスタンスはIsReadOnlyプロパティでTrueを返します。

Synchronized

同期アクセスを行うようにするラッパを提供します。

Static Function Synchronized(l As ArrayList) As ArrayList
Static Function Synchronized(l As IList) As IList
l
基となるリスト(ArrayListクラスもしくはIListインタフェース
戻り値
同期アクセスを行うラッパ

このメソッドが返すインスタンスはIsSynchronizedプロパティでTrueを返します。