Delphi Generics.Collections

Similar documents
第2回

ハッシュテーブル

Microsoft PowerPoint - 6.pptx

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

JAVA入門

ゲートウェイのファイル形式

ゲートウェイのファイル形式

Microsoft PowerPoint - Pro110111


ゲートウェイ ファイル形式

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

intra-mart Accel Platform

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

JAVA入門

Microsoft PowerPoint - algo ppt [互換モード]

Cisco Jabber for Windows のカスタマイズ

Prog1_15th

Oracleセキュア・エンタープライズ・サーチ

レポートでのデータのフィルタ

プログラミング入門1

Microsoft PowerPoint - lec06 [互換モード]

PowerPoint Template

電話機のファイル形式

Microsoft Word - 第5回 基本データ構造2(連結リスト).doc

ファイナライザを理解する ~ ファイナライザに起因するトラブルを避けるために ~ 2013 年 11 月 25 日 橋口雅史 Java アプリケーションでファイナライザ (finalize() メソッド ) を使用したことがあるプログラマーは多いと思います しかし ファイナライザの仕組みや注意点につ

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~



ファイル操作

CプログラミングI

JavaプログラミングⅠ

プログラム言語及び演習Ⅲ

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

INFRAGISTICS WPF 18.1 サービスリリースノート 2019 年 4 月 Infragistics WPF で実現する高度な BI ときれいなデスクトップ UI Infragistics WPF コントロールは 広範な機能を提供し 最小限の開発工数でアプリケーションの作成を可能にしま

プログラミング入門1

PowerPoint Presentation

プレポスト【問題】

ListViewコントロール


「不動産リスト」を解く


目次 専用アプリケーションをインストールする 1 アカウントを設定する 5 Windows クライアントから利用できる機能の紹介 7 1ファイル フォルダのアップロードとダウンロード 8 2ファイル更新履歴の管理 10 3 操作履歴の確認 12 4アクセスチケットの生成 ( フォルダ / ファイルの

PowerPoint プレゼンテーション

レポートのデータへのフィルタの適用

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

Section1_入力用テンプレートの作成


次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

人工知能入門

FileExplorer for ASP.NET Web Forms

模擬試験問題(第1章~第3章)

プログラミング入門1

Functional Programming

ii

2

Microsoft PowerPoint - ruby_instruction.ppt

基礎計算機演習 実習課題No6

untitled

i

今さら聞けない!? Oracle入門 ~前編~

概要 ABAP 開発者が SAP システム内の SAP ソースまたは SAP ディクショナリーオブジェクトを変更しようとすると 2 つのアクセスキーを入力するよう求められます 1 特定のユーザーを開発者として登録する開発者キー このキーは一度だけ入力します 2 SAP ソースまたは SAP ディクシ

Javaプログラマー早期育成ドリル ~コードリーディング編~ 解答

Microsoft Word - Android_SQLite講座_画面800×1280

Microsoft PowerPoint - diip ppt

できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 3 回コレクションと例外処理 テクノロジックアート 瀬嘉秀


2 / 8 オンデマンドダウンロード機能 を使用するときに次の制約があります 1. インターネットに接続されていない ( オフライン ) 場合は OneDrive エリアのみにあるファイルを開くことはできない 2.OneDrive エリアからダウンロードが完了するまでいくらか待たされるし ( 特に大

Microsoft PowerPoint - 05.pptx

III


第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

memo

4-3- 基 C++ に関する知識 オープンソースシステムのソースを解読する上で C++ の知識は必須であるといえる 本カリキュラムでは まずオブジェクト指向に関する Ⅰ. 概要理解を深め クラスの扱い方について学習し STL を使用してアルゴリズムとデータ構造を実装する方法を学習する Ⅱ. 対象専

PowerPoint Presentation

4-1- 基 Java に関する知識 1 独立行政法人情報処理推進機構

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

memo

スライド 1

Calendar Plus JavaScript API リファレンス ラジカルブリッジ Ver

Oracle Data Pumpのパラレル機能

Oracle DatabaseとIPv6 Statement of Direction

Microsoft Word - NonGenList.doc


Microsoft PowerPoint - 06.pptx

PowerPoint プレゼンテーション

3,, となって欲しいのだが 実際の出力結果を確認すると両方の配列とも 10, 2, 3,, となってしまっている この結果は代入後の配列 a と b は同じものになっていることを示している つまり 代入演算子 = によるの代入は全要素のコピーではなく 先をコピーする ため 代入後の a と b は

データアダプタ概要

アラートの使用

ユーザ デバイス プロファイルの ファイル形式

Microsoft PowerPoint - lec10.ppt

Delphi/400最新プログラム文法の活用法

Microsoft Word A08

管理番号 内容仮想テーブル設定画面およびマッチング条件設定画面においてコメントを設定した場合 変換エラーが発生する マッピング情報設定画面の出力情報に固定値を選択し区分に 動的バイナリ値 を指定した場合 関数を設定す

Untitled

DumpCollection IT Exam Training online / Bootcamp PDF and Testing Engine, study and practice

Microsoft Word - ModelAnalys操作マニュアル_

入門ガイド

Transcription:

Delphi Generics. Copyright(C) 2008 Embarcadero Technologies

Delphi Generics.Collections 目次 Generics.Collections.TCollectionNo 1 Generics.Collections.TCollectionNo 3 Generics.Collections.TDictionary5 Generics.Collections.TDictionary.A 7 Generics.Collections.TDictionary.A 9 Generics.Collections.TDictionary.C 11 Generics.Collections.TDictionary.C 13 Generics.Collections.TDictionary.C 15 Generics.Collections.TDictionary.C 17 Generics.Collections.TDictionary.C 19 Generics.Collections.TDictionary.D 21 Generics.Collections.TDictionary.I 23 Generics.Collections.TDictionary.O 25 Generics.Collections.TDictionary.O 27 Generics.Collections.TDictionary.R 29 Generics.Collections.TDictionary.T 31 iii

Delphi Generics.Collections Generics.Collections.TDictionary.T 33 Generics.Collections.TDictionaryOw 35 Generics.Collections.TList 37 Generics.Collections.TList.Add 39 Generics.Collections.TList.AddRang 41 Generics.Collections.TList.BinaryS 43 Generics.Collections.TList.Capacit 45 Generics.Collections.TList.Clear 47 Generics.Collections.TList.Contain 49 Generics.Collections.TList.Count 51 Generics.Collections.TList.Create 53 Generics.Collections.TList.Delete 55 Generics.Collections.TList.DeleteR 57 Generics.Collections.TList.Destroy 59 Generics.Collections.TList.Extract 61 Generics.Collections.TList.IndexOf 63 Generics.Collections.TList.Insert 65 iv

Delphi Generics.Collections Generics.Collections.TList.InsertR 67 Generics.Collections.TList.Items 69 Generics.Collections.TList.LastInd 71 Generics.Collections.TList.OnNotif 73 Generics.Collections.TList.Remove 75 Generics.Collections.TList.Reverse 77 Generics.Collections.TList.Sort79 Generics.Collections.TList.TrimExc 81 Generics.Collections.TObjectDictio 83 Generics.Collections.TObjectDictio 85 Generics.Collections.TObjectList 87 Generics.Collections.TObjectList.C 89 Generics.Collections.TObjectList.O 91 Generics.Collections.TObjectQueue 93 Generics.Collections.TObjectQueue. 95 Generics.Collections.TObjectQueue. 97 Generics.Collections.TObjectQueue. 99 v

Delphi Generics.Collections Generics.Collections.TObjectStack 101 Generics.Collections.TObjectStack. 103 Generics.Collections.TObjectStack. 105 Generics.Collections.TObjectStack. 107 Generics.Collections.TQueue 109 Generics.Collections.TQueue.Clear 111 Generics.Collections.TQueue.Count 113 Generics.Collections.TQueue.Create 115 Generics.Collections.TQueue.Dequeu 117 Generics.Collections.TQueue.Destro 119 Generics.Collections.TQueue.Enqueu 121 Generics.Collections.TQueue.Extrac 123 Generics.Collections.TQueue.OnNoti 125 Generics.Collections.TQueue.Peek 127 Generics.Collections.TQueue.TrimEx 129 Generics.Collections.TStack 131 Generics.Collections.TStack.Clear 133 vi

Delphi Generics.Collections Generics.Collections.TStack.Count 135 Generics.Collections.TStack.Create 137 Generics.Collections.TStack.Destro 139 Generics.Collections.TStack.Extrac 141 Generics.Collections.TStack.OnNoti 143 Generics.Collections.TStack.Peek 145 Generics.Collections.TStack.Pop147 Generics.Collections.TStack.Push 149 Generics.Collections.TStack.TrimEx 151 Generics.Collections 153 インデックス a vii

1 Delphi Generics.Collections 1 Generics.Collections. cation 説明 OnNotify イベント発生時のコレクションに対する変更のタイプ 以下の一覧表に TCollectionNotification の値を示します 値 cnadded cnremoved cnextracted 意味 コレクションにアイテムが追加されました コレクションからアイテムが削除されました コレクションからアイテムが抽出されました つまり アイテムが削除され その値が返されました 関連リンク OnNotify 73 ( ページを参照 ) OnNotify 125 ( ページを参照 ) OnNotify 143 ( ページを参照 ) TCollectionNotifyEvent 3 ページを参照 ) ( 1

2 Delphi Generics.Collections 2 Generics.Collections. Event 説明 OnNotify イベントのイベントハンドラ TCollectionNotifyEvent は OnNotify イベントに設定できるイベントハンドラです このルーチンはコレクションの変更後に呼び出されます Sender は このイベントの影響を受けるコレクションオブジェクトです Itemはコレクション内の変更されたアイテムです Action は 変更の種類を示す TCollectionNotification です 関連リンク OnNotify 73 ( ページを参照 ) OnNotify 125 ( ページを参照 ) OnNotify 143 ( ページを参照 ) TCollectionNotification 1 ページを参照 ) ( 3

3 Delphi Generics.Collections 3 Generics.Collections. 説明 キーと値のペアのコレクション TDictionary は キーと値のペアの汎用コレクションを表します このクラスは キーのコレクションから値のコレクションへのマッピングを提供します TDictionary オブジェクトを作成する場合 初期の容量 等値操作 および初期の内容について多様な組み合わせを指定できます Addまたは AddOrSetValue メソッドを使用すると 対応する値に関連付けられたキーを追加できます Remove または Clear を使用すると エントリを削除できます これは すべてのキーと値のペアを削除します キーはハッシュされているので キーと値のペアを追加または削除してキーを検索することは有効であり O(1) に近い操作です キーは nil( 値が nilになることはあります ) であってはなりません キーに対しては 等値比較操作を行う必要があります TryGetValue ContainsKey および ContainsValue メソッドを使用すると キーと値が存在するか Items プロパティは すべての Count ディクショナリエントリを一覧表示します Items プロパティをインデックス付けすることによって 値を設定および取得することもできます この方法で値を設定すると 既存の値が上書きされます クラス TObjectDictionary は TDictionary を継承し ディクショナリエントリから削除されたオブジェクトを開放する自動的なメカニズムを提供します 関連リンク TObjectDictionary 83 ページを参照 ( ) Count 17 ( ページを参照 ) Items 23 ( ページを参照 ) Add (7 ページを参照 ) AddOrSetValue 9 ページを参照 ( ) Clear 11 ( ページを参照 ) ContainsKey 13 ページを参照 ( ) ContainsValue 15 ページを参照 ( ) Remove 29 ( ページを参照 ) 5

Delphi Generics.Collections 3 TryGetValue 33 ページを参照 ( ) 6

4 Delphi Generics.Collections 4 Generics.Collections. 説明 キーと値のペアを追加します Add は キーとそれに対応する値をディクショナリに追加します キーは nil であってはなりませんが 値は nil の場合もあります キーがディクショナリに既に存在する場合 例外が発生します ディクショナリにエントリが追加されると OnNotify イベントが発生します Items プロパティは すべてのディクショナリエントリを一覧表示します Items プロパティを直接インデックス付けすることによって 値を設定および取得することもできます たとえば 以下のように値を設定できます Items[ キー ] := 値 ; この方法で値を設定すると 既存のキーに対する値が上書きされますが 例外は発生しません 関連リンク Items 23 ( ページを参照 ) AddOrSetValue 9 ページを参照 ( ) OnNotify 7

5 Delphi Generics.Collections 5 Generics.Collections. SetValue 説明 キーが既に存在する場合でも キーと値のペアを追加します AddOrSetValue は キーが既に存在する場合でも キーと値のペアをディクショナリに追加します キーは nilであってはなりませんが 値は nilの場合もあります このメソッドは キーがディクショナリに存在するかどうかを検査します 存在する場合は Items[ キー ] := と同じになります それ以外の場合は 値 ; Add( キー, 値と同じになります ); ディクショナリにエントリが追加されると OnNotify イベントが発生します 関連リンク Items 23 ( ページを参照 ) Add (7 ページを参照 ) OnNotify 9

6 Delphi Generics.Collections 6 Generics.Collections. r 説明 すべてのデータをクリアします Clear は すべてのキーと値をディクショナリから削除します Count プロパティは 0 に設定されます 容量も 0 に設定されます この操作は O(n)(n は Count) 回 ( ディクショナリエントリの数 ) 行う必要があります メモ : Clear は 項目を削除しても開放しません 項目を開放する必要がある場合は OnNotify イベントを使用します これは エントリが削除された場合に発生し 削除された項目を提供します 関連リンク Count 17 ( ページを参照 ) Remove 29 ( ページを参照 ) TrimExcess 31 ページを参照 ( ) OnNotify 11

7 Delphi Generics.Collections 7 Generics.Collections. inskey 説明 キーがディクショナリに存在するかどうかを検査します 指定されたキーがディクショナリに存在する場合 ContainsKey は true を返します それ以外の場合は false を返します これは O(1) 操作になります 関連リンク AddOrSetValue 9 ページを参照 ( ) ContainsValue 15 ページを参照 ( ) TryGetValue 33 ページを参照 ( ) 13

8 Delphi Generics.Collections 8 Generics.Collections. insvalue 説明 値がディクショナリに存在するかどうかを検査します 指定された値がディクショナリに存在する場合 ContainsValue は true を返します それ以外の場合は false を返します これは O(n)(n は Count プロパティのエントリ数 ) 操作になります 関連リンク Count 17 ( ページを参照 ) ContainsKey 13 ページを参照 ( ) 15

9 Delphi Generics.Collections 9 Generics.Collections. t 説明 エントリの数 Count は ディクショナリ内のキーと値のペアの数を保持します Items プロパティは Count エントリを保持していま 関連リンク Items 23 ( ページを参照 ) 17

10 Delphi Generics.Collections 10Generics.Collections te 説明 ディクショナリを作成します このオーバーロードされたメソッドは ディクショナリインスタンスの作成と初期化を行います 初期の容量 (ACapacity ) 等値比較関数 (AComparer ) またはキーと値の項目の初期コレクション(Collection ) を指定するために 多様な組み合わせのパラメータを使用できます 関連リンク Destroy 21 ( ページを参照 ) 19

11 Delphi Generics.Collections 11Generics.Collections roy 説明 ディクショナリを破棄します このメソッドは Clear を使用してディクショナリのインスタンスを破棄します メモ : Clear は 項目を削除しても開放しません 項目を開放する必要がある場合は OnNotify イベントを使用します これは エントリが削除された場合に発生し 削除された項目を提供します 関連リンク Clear 11 ( ページを参照 ) Create 19 ( ページを参照 ) 21

12 Delphi Generics.Collections 12Generics.Collections s 説明 すべてのディクショナリエントリのインデックス付け可能なリスト Items は ディクショナリ内のすべてのキーと値のペアのインデックス付け可能なリストです Count プロパティは Items 内のディクショナリエントリの数を保持しています Items プロパティをインデックス付けすることによって 値を設定および取得できます この方法で値を設定すると 既存の値が上書きされ 例外は発生しません 関連リンク Count 17 ( ページを参照 ) Add (7 ページを参照 ) AddOrSetValue 9 ページを参照 ( ) 23

13 Delphi Generics.Collections 13Generics.Collections ynotify 説明 ディクショナリのキーペアが変わったときに発生します Pascal C++ property OnNotify: TCollectionNotifyEvent<TKey>; property _decl_tcollectionnotifyevent 1(TKey, OnKe OnKeyNotify イベントは ディクショナリにアイテムの追加または削除があると発生します 単一の操作で複数のイベントが発生する場合があります これによって 削除されたオブジェクトを解放できます 関連リンク Add (7 ページを参照 ) AddOrSetValue 9 ページを参照 ( ) Clear 11 ( ページを参照 ) Remove 29 ( ページを参照 ) TCollectionNotifyEvent 3 ページを参照 ) ( TCollectionNotification 1 ページを参照 ) ( 25

14 Delphi Generics.Collections 14Generics.Collections luenotify 説明 ディクショナリのキーペアが変わったときに発生します Pascal C++ property OnNotify: TCollectionNotifyEvent<TValue>; property _decl_tcollectionnotifyevent 1(TValue, On OnValueNotify イベントは ディクショナリにアイテムの追加または削除があると発生します 単一の操作で複数のイベントが発生する場合があります これによって 削除されたオブジェクトを解放できます 関連リンク Add (7 ページを参照 ) AddOrSetValue 9 ページを参照 ( ) Clear 11 ( ページを参照 ) Remove 29 ( ページを参照 ) TCollectionNotifyEvent 3 ページを参照 ) ( TCollectionNotification 1 ページを参照 ) ( 27

15 Delphi Generics.Collections 15Generics.Collections ve 説明 キーと値のペアを削除します Remove は 指定されたキーとそれに関連付けられた値をディクショナリから削除します キーがディクショナリに存在しなくても 例外は発生しません これは O(1) 操作になります ディクショナリからエントリが削除されると OnNotify イベントが発生します 関連リンク Destroy 21 ( ページを参照 ) Clear 11 ( ページを参照 ) TrimExcess 31 ページを参照 ( ) 29

16 Delphi Generics.Collections 16Generics.Collections Excess 説明 容量を現在のエントリ数に縮小します TrimExcess は Count に保持されているディクショナリエントリの数に容量を変更します このメソッドは 内部ハッシュテーブルを再ハッシュして容量を節約します これは ディクショナリから多数の項目が削除された後にのみ役に立ちます 関連リンク Count 17 ( ページを参照 ) Remove 29 ( ページを参照 ) Clear 11 ( ページを参照 ) TrimExcess 81 ページを参照 ( ) TrimExcess 129 ( ページを参照 ) TrimExcess 151 ( ページを参照 ) 31

17 Delphi Generics.Collections 17Generics.Collections etvalue 説明 キーに対する値の取得を試行します 指定されたキーがディクショナリに存在し その値が Value に提供される場合 TryGetValue は true を返します それ以外の場合は false が返され Value は TValue のデフォルト値の型に設定されます キーがディクショナリに存在しなくても 例外は発生しません これは O(1) 操作になります 関連リンク ContainsKey 13 ページを参照 ( ) 33

18 Delphi Generics.Collections 18Generics.Collections ships 説明 TObjectDictionary の所有権の集合 TDictionaryOwnerships は オブジェクト作成時に指定された TObjectDictionary オブジェクの所有権の集合です 値を指定しない場合 いずれか一方を指定する場合 両方を指定する場合の 3 とおりがあります ディクショナリがキーまたは値あるいはその両方を所有している場合 エントリがディクショナリから削除されると そのキーや値は解放されます 以下の一覧表に TDictionaryOwnerships の値を示します 値 doownskeys doownsvalues 意味 ディクショナリはエントリ内のキーを所有しています ディクショナリはエントリ内の値を所有しています 関連リンク Create 85 ( ページを参照 ) 35

19 Delphi Generics.Collections 19Generics.Collections 説明 順序付きリスト TList は インデックスによってアクセスできる順序付きリストを表します 特定の項目のコレクションと比較演算子を使用してリストを作成できます リストに対して項目を追加 変更 挿入 または削除できます また リスト全体をクリアすることもできます リストには nil オブジェクトを追加できます リストは ソート 検索 および反転できます Count には キューにある項目の数が格納されます Capacity は リストが保持できる項目の数です ( サイズ変更されるまで ) Items 配列をインデックス付けすることによって 値を設定および取得することもできます リストが変更されると OnNotify イベントが発生します クラス TObjectList は TList を継承し リストから削除されたオブジェクトを開放する自動的なメカニズムを提供し 関連リンク TObjectList 87 ページを参照 ( ) Capacity 45 ( ページを参照 ) Count 51 ( ページを参照 ) Items 69 ( ページを参照 ) Add (39 ページを参照 ) AddRange 41 ( ページを参照 ) BinarySearch 43 ページを参照 ( ) Clear 47 ( ページを参照 ) Create 53 ( ページを参照 ) Delete 55 ( ページを参照 ) DeleteRange 57 ページを参照 ( ) 37

Delphi Generics.Collections 19 IndexOf 63 ( ページを参照 ) Insert 65 ( ページを参照 ) InsertRange 67 ページを参照 ( ) Remove 75 ( ページを参照 ) Reverse 77 ( ページを参照 ) Sort (79 ページを参照 ) OnNotify 73 ( ページを参照 ) 38

20 Delphi Generics.Collections 20Generics.Collections 説明 リストの末尾に項目を追加します Add は 指定された項目をリストの末尾に追加します これは nil を追加できます 必要な場合 リストの容量 (Capacity) が増加されます これは O(1) 操作になります リストにエントリが追加されると OnNotify イベントが発生します 関連リンク Capacity 45 ( ページを参照 ) AddRange 41 ( ページを参照 ) OnNotify 73 ( ページを参照 ) 39

21 Delphi Generics.Collections 21Generics.Collections 説明 リストの末尾にコレクションを追加します AddRange は 項目のコレクションをリストの末尾に追加します 必要な場合 リストの容量 (Capacity) が増加されます これは O(n)(n は 追加されるコレクションの要素数 ) 操作になります リストにエントリが追加されると OnNotify イベントが発生します 関連リンク Capacity 45 ( ページを参照 ) Add (39 ページを参照 ) InsertRange 67 ページを参照 ( ) OnNotify 73 ( ページを参照 ) 41

22 Delphi Generics.Collections 22Generics.Collections ch 説明 バイナリ検索を使用して 要素のソートされたリストを検索します オーバーロードされたメソッド BinarySearch は バイナリ検索を使用して リスト内の要素 (Item ) を検索します 要素が見つかった場合 このメソッドは true を返します それ以外の場合は false を返します 要素が見つかった場合 Item の 0 から始まるインデックスが Index に格納されます 要素が見つからなかった場合 Item よりも大きい最初のエントリのインデックスが Index に格納されます メモ : BinarySearch では リストがソートされている必要があります IndexOf メソッドでは リストがソートされている必要はありませんが 通常 BinarySearch より低速です リスト内に Item と等しい要素が複数ある場合 最初に一致した要素のインデックスが Index に返されます これは 一致した項目のいずれかのインデックスであり 最初の項目とは限りません 比較関数 AComparer が 要素を比較するために提供される場合があります Index がリストの範囲外にある場合 EArgumentOutOfRangeException 例外が発生します これは n エントリを持つリストに対する O(log n) 操作になります 関連リンク IndexOf 63 ( ページを参照 ) Sort (79 ページを参照 ) 43

23 Delphi Generics.Collections 23Generics.Collections 説明 リストの容量 Capacity は リストの容量を取得または設定します これは サイズ変更していないリストの最大サイズです 容量は Count ( リスト内の実際の項目数 ) より小さく設定できません TrimExcess メソッドは リストの容量を現在の要素数 (Count) に縮小します 関連リンク Count 51 ( ページを参照 ) Items 69 ( ページを参照 ) TrimExcess 81 ページを参照 ( ) 45

24 Delphi Generics.Collections 24Generics.Collections 説明 リストのエントリをすべて削除します Clear は リストからすべてのエントリを削除します これは O(1) 操作になります Capacity と Count は 0 に設定されます メモ : Clear は 項目を削除しても開放しません 項目を開放する必要がある場合は OnNotify イベントを使用します これは 項目が削除された場合に発生し 削除された項目を提供します 関連リンク Capacity 45 ( ページを参照 ) Count 51 ( ページを参照 ) Remove 75 ( ページを参照 ) OnNotify 73 ( ページを参照 ) 47

25 Delphi Generics.Collections 25Generics.Collections 説明 要素がリストに存在するかどうかを検査します 要素 (Value ) がリストに存在する場合 Contains は true を返します それ以外の場合は false を返します このメソッドは 要素がリスト内に存在するかどうかのみを示します リスト内の要素のインデックスを取得する場合は IndexOf を使用します 要素の検索はリニアなので これは n エントリを持つリストに対する O(n) 操作になります 関連リンク IndexOf 63 ( ページを参照 ) 49

26 Delphi Generics.Collections 26Generics.Collections 説明 リストの要素数 Count は リスト内の実際の要素数を取得または設定します Count は 常に Capacity 以下になります ある操作 (Insert など ) によって Count が Capacity より大きくなる場合 リストが自動的にサイズ変更されて Capacity が増加されます Count が減らされると リストの末尾の Count Value 項目が削除されます - 関連リンク Capacity 45 ( ページを参照 ) Items 69 ( ページを参照 ) Insert 65 ( ページを参照 ) 51

27 Delphi Generics.Collections 27Generics.Collections 説明 リストインスタンスを作成および初期化します このオーバーロードされたメソッドは リストインスタンスの作成と初期化を行います AComparer は 比較関数です この関数が提供されない場合は その型のデフォルトの比較関数が使用されます Collection は リストを初期化するためのコレクションです オブジェクトは Collection と同じ順序で追加されます Coll ection が指定されている場合 作成は O(n)(n Collection は 内の項目数 ) 操作になります 関連リンク Destroy 59 ( ページを参照 ) InsertRange 67 ページを参照 ( ) 53

28 Delphi Generics.Collections 28Generics.Collections 説明 インデックスが示す位置のエントリを削除します Delete は 指定されたインデックス Index () が示すリスト内の位置のエントリを削除します Index がリストに対して有効ではない場合 EArgumentOutOfRangeException 例外が発生します リストからエントリが削除されると OnNotify イベントが発生します 関連リンク Clear 47 ( ページを参照 ) DeleteRange 57 ページを参照 ( ) Extract 61 ( ページを参照 ) Insert 65 ( ページを参照 ) InsertRange 67 ページを参照 ( ) Remove 75 ( ページを参照 ) OnNotify 73 ( ページを参照 ) 55

29 Delphi Generics.Collections 29Generics.Collections e 説明 インデックスが示す位置のいくつかのエントリを削除します DeleteRange は 指定されたインデックス AIndex ) が示すリスト内の位置から ( ACount 個のエントリを削除します AIndex と ACount がリスト内の無効な範囲を示している場合 EArgumentOutOfRangeException 例外が発生 これは O(ACount) 操作になります リストからエントリが削除されると OnNotify イベントが発生します 関連リンク Clear 47 ( ページを参照 ) Delete 55 ( ページを参照 ) Insert 65 ( ページを参照 ) InsertRange 67 ページを参照 ( ) Remove 75 ( ページを参照 ) OnNotify 73 ( ページを参照 ) 57

30 Delphi Generics.Collections 30Generics.Collections 説明 リストを破棄します このメソッドは リストを破棄します 関連リンク Create 53 ( ページを参照 ) 59

31 Delphi Generics.Collections 31Generics.Collections 説明 リストのエントリを削除してその値を返します Extract は エントリ (Value ) をリストから削除してその値を返します Value がリストに存在しない場合は 型 Tのデフォルト値を返します リストからエントリが削除されると OnNotify イベントが発生します Extract は 要素が削除されたのではなく抽出されたことを示すイベントコードを除くと Remove と似ています これは 項目を開放せずに削除するために提供されています 関連リンク Clear 47 ( ページを参照 ) Delete 55 ( ページを参照 ) DeleteRange 57 ページを参照 ( ) Remove 75 ( ページを参照 ) OnNotify 73 ( ページを参照 ) 61

32 Delphi Generics.Collections 32Generics.Collections 説明 リニア検索を使用して要素を検索します IndexOf は リニア検索を使用して リストの要素 (Value ) を検索します このメソッドは Value と等しい最初のエントリの 0 から始まるインデックスを返します 要素が見つからない場合は -1 を返します 要素の検索はリニアなので これは n エントリを持つリストに対する O(n) 操作になります 通常 BinarySearch メソッドの方が高速ですが リストがソートされている必要があります 関連リンク BinarySearch 43 ページを参照 ( ) Contains 49 ( ページを参照 ) LastIndexOf 71 ページを参照 ( ) 63

33 Delphi Generics.Collections 33Generics.Collections 説明 リストにエントリを挿入します Insert は 要素 (Value ) をリスト内のインデックス (Index ) の位置に挿入します リストの Count が既に Capacity と等しい場合 Capacity が増加されます Index がリストに対して有効ではない場合 EArgumentOutOfRangeException 例外が発生します これは O(n)(n は リスト内の項目数 ) 操作になります リストに項目が挿入されると OnNotify イベントが発生します 関連リンク Count 51 ( ページを参照 ) Capacity 45 ( ページを参照 ) Delete 55 ( ページを参照 ) DeleteRange 57 ページを参照 ( ) Extract 61 ( ページを参照 ) InsertRange 67 ページを参照 ( ) Remove 75 ( ページを参照 ) OnNotify 73 ( ページを参照 ) 65

34 Delphi Generics.Collections 34Generics.Collections e 説明 リストにコレクションを挿入します InsertRange は 値の配列 (Values ) をリスト内のインデックス (Index ) の位置に挿入します リストの Count に追加のエントリを加えた数が Capacity より大きい場合 Capacity が増加されます Index がリストに対して有効ではない場合 EArgumentOutOfRangeException 例外が発生します これは O(n + m)(n と m は それぞれリスト内の項目数と Values 内のエントリ数 ) 操作になります リストに項目が挿入されると OnNotify イベントが発生します 関連リンク Count 51 ( ページを参照 ) Capacity 45 ( ページを参照 ) Delete 55 ( ページを参照 ) DeleteRange 57 ページを参照 ( ) Extract 61 ( ページを参照 ) InsertRange Remove 75 ( ページを参照 ) OnNotify 73 ( ページを参照 ) 67

35 Delphi Generics.Collections 35Generics.Collections 説明 インデックスが示す位置の項目 Items は 指定されたインデックスが示すリスト内の位置の要素を取得または設定します 構文 mylist[i] を使用してリスト内の i 番目の項目にアクセスするインデックスを使用することによって Items を使ってリストの値を取得および設定できます 関連リンク Capacity 45 ( ページを参照 ) Count 51 ( ページを参照 ) 69

36 Delphi Generics.Collections 36Generics.Collections f 説明 エントリの最後のインスタンスに対するインデックスを取得します LastIndexOf は リスト内にある Value の最後のインスタンスに対する 0から始まるインデックスを取得します インスタンスが見つからない場合 この関数は -1 を返します インスタンスの検索はリニアなので これは n エントリを持つリストに対する O(n) 操作になります 関連リンク IndexOf 63 ( ページを参照 ) 71

37 Delphi Generics.Collections 37Generics.Collections 説明 リストが変更されたときに発生します OnNotify イベントは 項目がリストに追加または削除されたときに発生します 単一の操作で複数のイベントが発生する場合があります これによって 削除されたオブジェクトを開放できます 関連リンク Add (39 ページを参照 ) AddRange 41 ( ページを参照 ) Delete 55 ( ページを参照 ) DeleteRange 57 ページを参照 ( ) Insert 65 ( ページを参照 ) InsertRange 67 ページを参照 ( ) Remove 75 ( ページを参照 ) OnNotify 125 ( ページを参照 ) OnNotify 143 ( ページを参照 ) TCollectionNotifyEvent 3 ページを参照 ) ( TCollectionNotification 1 ページを参照 ) ( 73

38 Delphi Generics.Collections 38Generics.Collections 説明 最初に出現した値を削除します Remove は リスト内にある Value の最初のインスタンスを削除して そのインスタンスの 0 から始まるインデックスを返します Value がリストに存在しない場合 この関数は -1 を返します インスタンスの検索はリニアなので これは n エントリを持つリストに対する O(n) 操作になります リストからエントリが削除されると OnNotify イベントが発生します 関連リンク Clear 47 ( ページを参照 ) Delete 55 ( ページを参照 ) DeleteRange 57 ページを参照 ( ) Extract 61 ( ページを参照 ) IndexOf 63 ( ページを参照 ) OnNotify 73 ( ページを参照 ) 75

39 Delphi Generics.Collections 39Generics.Collections リストの順序を反転します 説明このメソッドは リスト内にあるすべての要素の順序を逆にします これは O(n)(n は リスト内の要素数 ) 操作になります 関連リンク Sort (79 ページを参照 ) 77

40 Delphi Generics.Collections 40Generics.Collections 説明 リストをソートします このメソッドは リストをソートします AComparer が提供されている場合 要素を比較するために使用されます それ以外の場合は リストの要素に対するデフォルトの比較関数が使用されます このソートは O(nlogn)(n は リスト内の要素数 ) 操作になります クイックソートアルゴリズムが使用されるので 等しい要素の順序が維持されない場合があります 関連リンク BinarySearch 43 ページを参照 ( ) Reverse 77 ( ページを参照 ) 79

41 Delphi Generics.Collections 41Generics.Collections s 説明 リストの容量にリスト内の要素数を設定します TrimExcess は Capacity に Count の値を設定し リスト内の超過している容量をすべて取り除きます 関連リンク Count 51 ( ページを参照 ) Capacity 45 ( ページを参照 ) Clear 47 ( ページを参照 ) TrimExcess 31 ページを参照 ( ) TrimExcess 129 ( ページを参照 ) TrimExcess 151 ( ページを参照 ) 81

42 Delphi Generics.Collections 42Generics.Collections y 説明 オブジェクトのキーと値のペアのコレクション TObjectDictionary は オブジェクトのキーと値のペアの汎用コレクションを表します TObjectDictionary は オブジェクトがディクショナリから削除されたときに 自動的にオブジェクトを開放する機能を持つ T Dictionary です TObjectDictionary がインスタンス化される際は Ownerships パラメータによって ディクショナリがキーと値 ( または そのいずれか ) を所有するかどうかが指定されます キーと値 ( または そのいずれか ) がディクショナリに所有されている場合 エントリが削除されると キーと値 ( または そのいずれか ) のオブジェクトが開放されます 関連リンク TDictionary 5 ページを参照 ( ) Create 85 ( ページを参照 ) 83

43 Delphi Generics.Collections 43Generics.Collections y.create 説明 TObjectDictionary インスタンスを作成します このオーバーロードされたメソッドは TObjectDictionary インスタンスを作成します Ownerships パラメータは エントリのキーと値 ( または そのいずれか ) がディクショナリに所有されているかどうかを示す TDictionaryOwnerships です ディクショナリは キー 値 またはその両方を所有するか またはどちらも所有しない場合があります オブジェクトが所有されている場合 エントリがディクショナリから削除されると キーと値 ( または そのいずれか ) が開放されます ACapacity は ディクショナリの初期の容量です AComparer は 等値比較関数です この関数が提供されない場合 その型のデフォルトの比較関数が使用されます 関連リンク TDictionaryOwnerships 35 ページを参照 () Create 19 ( ページを参照 ) 85

44 Delphi Generics.Collections 44Generics.Collections 説明 オブジェクトの順序付きリスト TObjectList は インデックスによってアクセスできる オブジェクトの順序付きリストを表します TObjectList は オブジェクトのエントリがリストから削除されたときに 自動的にオブジェクトのエントリを開放する機能を持つ TList です TObjectList がインスタンス化される際は AOwnsObjects パラメータによって リストがリストのエントリを所有するかどうかが指定されます エントリが所有されている場合 エントリオブジェクトがリストから削除されると エントリオブジェクトが開放されます OwnsObjects プロパティは オブジェクトの所有権を取得または設定します 関連リンク OwnsObjects 91 ページを参照 ( ) Create 89 ( ページを参照 ) 87

45 Delphi Generics.Collections 45Generics.Collections te 説明 TObjectList インスタンスを作成します このオーバーロードされたメソッドは TObjectList インスタンスを作成します AOwnsObjects パラメータは オブジェクトエントリがリストに所有されているかどうかを示す論理値です オブジェクトが所有されている場合 エントリがリストから削除されると オブジェクトが開放されます OwnsObjects プロパティは このパラメータの値から設定されます デフォルトは true です Collection は リストを初期化するためのコレクションです オブジェクトは Collection と同じ順序で追加されます Coll ection が指定されている場合 インスタンスの作成は O(n)(n Collection は 内の項目数 ) 操作になります AComparer は 等値比較関数です この関数が提供されない場合 その型のデフォルトの比較関数が使用されます 関連リンク OwnsObjects 91 ページを参照 ( ) Create 53 ( ページを参照 ) 89

46 Delphi Generics.Collections 46Generics.Collections Objects 説明 オブジェクトの所有権を取得または設定します OwnsObjects は リスト内のオブジェクトがリストに所有されているかどうかを取得または設定します エントリが所有されている場合 エントリオブジェクトがリストから削除されると エントリオブジェクトが開放されます Create は このプロパティを初期化します 関連リンク Create 89 ( ページを参照 ) 91

47 Delphi Generics.Collections 47Generics.Collections 説明 オブジェクトのキュー TObjectQueue は オブジェクトのキューを表します TObjectQueue は オブジェクトエントリをキューから削除するときに 自動的にそれを開放する機能を持つ TQueue です TO bjectqueue をインスタンス化するとき キューがそのキューエントリを所有するかどうかを AOwnsObjects パラメータで指定します キューがエントリを所有する場合 キューからエントリオブジェクトが削除されるときにそのエントリオブジェクトは解放されます OwnsObjects プロパティは オブジェクト所有権を取得または設定します 関連リンク TQueue 109 ( ページを参照 ) OwnsObjects 99 ページを参照 ( ) Create 95 ( ページを参照 ) Dequeue 97 ( ページを参照 ) 93

48 Delphi Generics.Collections 48Generics.Collections ate 説明 TObjectQueue インスタンスを作成します このオーバーロードメソッドは TObjectQueue インスタンスを作成します AOwnsObjects パラメータは キューがオブジェクトエントリを所有するかどうかを示す論理値です キューがオブジェクトを所有する場合 キューからエントリが削除されるときにオブジェクトが解放されます OwnsObjects プロパティは このパラメータの値により設定されます デフォルトは true です Collection は キューの初期化に使用するコレクションです オブジェクトは Collection にある順に追加されます Collec tion が指定されると 作成は 1 回の O(n) 操作です このとき Collection n はにあるアイテム数です 関連リンク OwnsObjects 99 ページを参照 ( ) Create 115 ( ページを参照 ) 95

49 Delphi Generics.Collections 49Generics.Collections ueue 説明 キューの先頭にあるアイテムを削除します Dequeue は 削除は行いますが キューの先頭要素を返すことはありません Count は 1 減ります Count が既に 0の場合 エラーが発生します メモ : TObjectQueue.Dequeue が TQueue.Dequeue とは異なるのは プロシージャであり キューから外した要素を返さないという点です それ以外は 両メソッドの機能は同じです キューの先頭の操作を行うには TQueue.Peek を使用し 先頭の処理が終わったら TQueue.Dequeue を使用します または TQueue.Extract を使用して 所有権を取得しま 関連リンク Dequeue 117 ( ページを参照 ) Extract 123 ( ページを参照 ) Peek (127 ページを参照 ) 97

50 Delphi Generics.Collections 50Generics.Collections sobjects 説明 オブジェクト所有権を取得または設定します OwnsObjects は キュー内のオブジェクトをそのキューが所有するかどうかを取得または設定します キューがエントリを所有する場合 キューからエントリオブジェクトが削除されると そのエントリオブジェクトは解放されます Create は このプロパティを初期化します 関連リンク Create 95 ( ページを参照 ) 99

51 Delphi Generics.Collections 51Generics.Collections 説明 スタックでのオブジェクトの後入れ先出し TObjectStack は 同一型のオブジェクトスタックでの後入れ先出しを表します 任意のサイズで 必要に応じて拡張します スタックに nilをプッシュできます TObjectStack は オブジェクトエントリをスタックから削除するときに 自動的にそれを開放する機能を持つ TStack です TObjectStack をインスタンス化するとき スタックがそのスタックエントリを所有するかどうかを AOwnsObjects パラメータで指定します スタックがエントリを所有する場合 スタックからエントリオブジェクトが削除されるときにそのエントリオブジェクトは解放されます OwnsObjects プロパティは オブジェクト所有権を取得または設定します 関連リンク TStack 131 ( ページを参照 ) OwnsObjects 105 ( ページを参照 ) Create 103 ( ページを参照 ) Pop (107 ページを参照 ) 101

52 Delphi Generics.Collections 52Generics.Collections ate 説明 TObjectStack インスタンスを作成します このオーバーロードメソッドは TObjectQueue インスタンスを作成します AOwnsObjects パラメータは スタックがオブジェクトエントリを所有するかどうかを示す論理値です スタックがオブジェクトを所有する場合 スタックからエントリが削除されるときにオブジェクトが解放されます OwnsObjects プロパティは このパラメータの値により設定されます デフォルトは true です Collection は スタックの初期化に使用するコレクションです オブジェクトは Collection にある順にスタック上にプッシュされます Collection が指定されると 作成は 1 回の O(n) 操作です このとき nは Collection にあるアイテム数です 関連リンク OwnsObjects 105 ( ページを参照 ) Create 137 ( ページを参照 ) 103

53 Delphi Generics.Collections 53Generics.Collections sobjects 説明 オブジェクト所有権を取得または設定します OwnsObjects は スタック内のオブジェクトをそのスタックが所有するかどうかを取得または設定します スタックがエントリを所有する場合 スタックからエントリオブジェクトが削除されると そのエントリオブジェクトは解放されます Create は このプロパティを初期化します 関連リンク Create 103 ( ページを参照 ) 105

54 Delphi Generics.Collections 54Generics.Collections p 説明 スタックアイテムをポップします このメソッドは スタックの先頭からアイテムを 1つ削除しますが それを返すことはしません Count は 1 減ります Coun t が既に 0 の場合 エラーが発生します メモ : TObjectStack.Pop が TStack.Pop とは異なるのは これがプロシージャであり ポップした要素を返さないという点です それ以外は 両メソッドの機能は同じです スタックの先頭の操作を行うには TStack.Peek を使用し 先頭の処理が終わったら TStack.Pop を使用します または TStack.Extract を使用して 所有権を取得します 関連リンク Extract 141 ( ページを参照 ) Peek (145 ページを参照 ) Pop (147 ページを参照 ) 107

55 Delphi Generics.Collections 55Generics.Collections 説明 ラッピングを利用して配列上に実装されたキュー TQueue は ラッピングを利用して配列上に実装されたキューです キューの最後にアイテムを追加し 先頭からアイテムを削除したり すべてのアイテムを削除することができます 先頭にあるアイテムを削除せずに読みだすこともできます キューに nil オブジェクトを追加できます Count は キュー内のアイテム数を保持します OnNotify イベントは キューがいつ変更されたかを知らせます クラス TObjectQueue は TQueue を継承し キューからオブジェクトを自動的に解放する仕組みを提供します 関連リンク TObjectQueue 93 ページを参照 ( ) Count 113 ( ページを参照 ) Clear 111 ( ページを参照 ) Dequeue 117 ( ページを参照 ) Enqueue 121 ( ページを参照 ) Extract 61 ( ページを参照 ) Peek (127 ページを参照 ) OnNotify 125 ( ページを参照 ) 109

56 Delphi Generics.Collections 56Generics.Collections 説明 キューを空にします Clear はキューからすべてのエントリを削除します Count は 0 になります これにより キューの容量が変わるわけではありません これは O(n) 操作であり n はキューサイズです メモ : Clear は アイテムをキューから外しますが 解放はしません アイテムを解放する必要がある場合は OnNotify イベントを使用します これは キューから外したアイテムすべてに対して発生し キューから外したアイテムを提供します 関連リンク Count 113 ( ページを参照 ) Dequeue 117 ( ページを参照 ) Destroy 119 ( ページを参照 ) OnNotify 125 ( ページを参照 ) 111

57 Delphi Generics.Collections 57Generics.Collections 説明 キュー要素の数 Count は キュー内の要素数を取得します このプロパティは設定できません 113

58 Delphi Generics.Collections 58Generics.Collections 説明 キューを作成します このメソッドは TQueue インスタンスの作成と初期化を行います コレクション Collection 内の各アイテムは Collection にある順にキューの最後に追加され ( キューに付けられ ) ます 関連リンク Destroy 119 ( ページを参照 ) Enqueue 121 ( ページを参照 ) 115

59 Delphi Generics.Collections 59Generics.Collections 説明 キューの先頭にあるアイテムを削除します Dequeue は キューの先頭要素を削除して返します Count は 1 減ります Count が既に 0 の場合 エラーが OnNotify イベントが発生して キューからアイテムが削除されたことを示します Dequeue は イベントコードが要素の抽出ではなく削除を示すことを除いて Extract と同じです Dequeue の機能は Dequeue がキューから要素を削除する点を除いて Peek と同じです これは O(1) 操作です 関連リンク Count 113 ( ページを参照 ) Enqueue 121 ( ページを参照 ) Extract 123 ( ページを参照 ) Peek (127 ページを参照 ) OnNotify 125 ( ページを参照 ) 117

60 Delphi Generics.Collections 60Generics.Collections 説明 キューを破棄します このメソッドは Clear を使用してキューをクリアしてから破棄します メモ : Clear は アイテムをキューから外しますが 解放はしません アイテムを解放する必要がある場合は OnNotify イベントを使用します これは キューから外したアイテムすべてに対して発生し キューから外したアイテムを提供します 関連リンク Clear 111 ( ページを参照 ) Create 115 ( ページを参照 ) 119

61 Delphi Generics.Collections 61Generics.Collections 説明 キューの最後にアイテムを追加します Enqueue は 指定されたアイテムの Value をキューの最後に追加します nilをキューに付けることができます Count は 1 増えます Count が容量いっぱいになっていると キューサイズが自動的に増やされます Count は 1 増えます OnNotify イベントが発生して キューにアイテムが追加されたことを示します これは キューの容量を増やす必要がない限り O(1) 操作です 増やす必要がある場合は O(n) となり このとき n は Coun t です 関連リンク Count 113 ( ページを参照 ) Dequeue 117 ( ページを参照 ) OnNotify 125 ( ページを参照 ) 121

62 Delphi Generics.Collections 62Generics.Collections 説明 キューの先頭にあるアイテムを削除します Extract は キューの先頭要素を削除して返します Count は 1 減ります Count が既に 0 の場合 エラーが OnNotify イベントが発生して キューからアイテムが削除されたことを示します Extract は イベントコードが要素の削除ではなく抽出を示すことを除いて Dequeue と同じです Extract の機能は Extract がキューから要素を削除する点を除いて Peek と同じです Extract は Dequeue です また アイテムは解放されずに削除されるようになっています これは O(1) 操作です 関連リンク Count 113 ( ページを参照 ) Dequeue 117 ( ページを参照 ) Enqueue 121 ( ページを参照 ) Peek (127 ページを参照 ) OnNotify 125 ( ページを参照 ) 123

63 Delphi Generics.Collections 63Generics.Collections 説明 キューが変化すると発生します OnNotify イベントは キューにアイテムの追加または削除があると発生します これによって 削除されたオブジェクトを解放できます 関連リンク Dequeue 117 ( ページを参照 ) Enqueue 121 ( ページを参照 ) Extract 123 ( ページを参照 ) OnNotify 73 ( ページを参照 ) OnNotify 143 ( ページを参照 ) TCollectionNotifyEvent 3 ページを参照 ) ( TCollectionNotification 1 ページを参照 ) ( 125

64 Delphi Generics.Collections 64Generics.Collections 説明 キューの先頭にあるアイテムを取得します Peek は キューの先頭にあるアイテムを返しますが 削除はしません Count は変わりません イベントは生成されません C ount が 0 の場合 エラーが発生します Peek の機能は Dequeue が先頭アイテムを削除する点を除いて Dequeue と同じです これは O(1) 操作です 関連リンク Count 113 ( ページを参照 ) Dequeue 117 ( ページを参照 ) Enqueue 121 ( ページを参照 ) Extract 123 ( ページを参照 ) 127

65 Delphi Generics.Collections 65Generics.Collections s 説明 容量をキュー要素の数に設定します TrimExcess は キューの容量を Count に設定します 関連リンク Count 113 ( ページを参照 ) TrimExcess 31 ページを参照 ( ) TrimExcess 81 ページを参照 ( ) TrimExcess 151 ( ページを参照 ) 129

66 Delphi Generics.Collections 66Generics.Collections 説明 後入れ先出しスタック TStack は同じ型の後入れ先出しスタックを表します サイズは任意で 必要に応じて拡張されます スタックには nilをプッシュできます スタックが変更されると OnNotify イベントが発生します Count にはスタックエントリの数が格納されています クラス TObjectStack は TStack を継承し スタックから削除されたオブジェクトを自動的に解放するメカニズムを備えています 関連リンク TObjectStack 101 ページを参照 ( ) Count 135 ( ページを参照 ) Clear 133 ( ページを参照 ) Pop (147 ページを参照 ) Push (149 ページを参照 ) TrimExcess 151 ( ページを参照 ) OnNotify 143 ( ページを参照 ) 131

67 Delphi Generics.Collections 67Generics.Collections 説明 スタックを空にします Clear はスタックからすべてのエントリをポップします Count( スタックに格納されているエントリの数 ) はゼロに設定されます 容量もゼロに設定されます これは O(n) の操作です (n は Count) メモ : Clear はアイテムをポップ時に解放しません アイテムを解放する必要がある場合は OnNotify イベントを使用します このイベントはポップのたびに発生し ポップされたアイテムを提供します 関連リンク Count 135 ( ページを参照 ) Destroy 139 ( ページを参照 ) Pop (147 ページを参照 ) OnNotify 143 ( ページを参照 ) 133

68 Delphi Generics.Collections 68Generics.Collections 説明 スタックエントリの数 Count は スタックに格納されているエントリの数を取得します Count は読み取り専用です 関連リンク Clear 133 ( ページを参照 ) Pop (147 ページを参照 ) Push (149 ページを参照 ) TrimExcess 151 ( ページを参照 ) 135

69 Delphi Generics.Collections 69Generics.Collections 説明 スタックを作成します このメソッドは TStack インスタンスを作成し初期化します Collection は スタックにプッシュされるオブジェクトが含まれているコレクションです Collection で並んでいる順にプッシュされます Create は O(n) の操作です Collection (n は内の要素の数 ) 関連リンク Destroy 139 ( ページを参照 ) 137

70 Delphi Generics.Collections 70Generics.Collections 説明 スタックインスタンスを破棄します このメソッドは Clear を使ってスタックを空にしたあと 破棄します メモ : Clear はアイテムをポップ時に解放しません アイテムを解放する必要がある場合は OnNotify イベントを使用します このイベントはポップのたびに発生し ポップされたアイテムを提供します 関連リンク Clear 133 ( ページを参照 ) Create 137 ( ページを参照 ) 139

71 Delphi Generics.Collections 71Generics.Collections 説明 先頭のスタックアイテムを削除します Extract はスタックの先頭要素を削除して返します Count は 1だけ減ります Count が既に 0の場合は エラーが発生します OnNotify イベントが発生し スタックからアイテムが削除されたことを示します Extract は 要素が削除ではなく抽出されたことをイベントコードが示している以外は Pop と同じです Extract は スタックから要素を削除する点を除き Peek と同様の機能を果たします Extract は Pop と似ており アイテムを解放せずに削除できるように用意されています これは O(1) の操作です 関連リンク Count 135 ( ページを参照 ) Pop (147 ページを参照 ) Push (149 ページを参照 ) OnNotify 143 ( ページを参照 ) 141

72 Delphi Generics.Collections 72Generics.Collections 説明 スタックが変化したときに発生します OnNotify イベントは スタックにアイテムが追加されたりスタックからアイテムが削除されたときに発生します これにより 削除されたオブジェクトを解放できるようになります 関連リンク OnNotify 73 ( ページを参照 ) OnNotify 125 ( ページを参照 ) TCollectionNotifyEvent 3 ページを参照 ) ( TCollectionNotification 1 ページを参照 ) ( 143

73 Delphi Generics.Collections 73Generics.Collections 説明 先頭のスタックアイテムを調べます Peek は スタックの先頭アイテムを削除せずに返します Count が 0 の場合は エラーが発生します Count は変わりません Pop は スタックから要素を削除する点を除き Peek と同様の機能を果たします これは O(1) の操作です 関連リンク Count 135 ( ページを参照 ) Pop (147 ページを参照 ) 145

74 Delphi Generics.Collections 74Generics.Collections 説明 スタックアイテムをポップします このメソッドは スタックの先頭から 1 つのアイテムを削除し それを返します Count は 1 だけ減ります Count が既に 0 の場合は エラーが発生します OnNotify イベントが発生し スタックからアイテムが削除されたことを示します Popは 要素が抽出ではなく削除されたことをイベントコードが示している以外は Extract と同じです Pop は スタックから要素を削除する点を除き Peek と同様の機能を果たします これは O(1) の操作です 関連リンク Count 135 ( ページを参照 ) Clear 133 ( ページを参照 ) Extract 141 ( ページを参照 ) Push (149 ページを参照 ) OnNotify 143 ( ページを参照 ) 147

75 Delphi Generics.Collections 75Generics.Collections 説明 スタックにアイテムをプッシュします このメソッドは 1つのアイテムをスタックの先頭に挿入します Count は 1だけ増えます スタックには nilをプッシュできます スタックの容量は必要に応じて自動的に増やされます OnNotify イベントが発生し スタックにアイテムが追加されたことを示します 容量の増加が必要でない限り これは O(1) の操作になります 容量の増加が必要な場合は O(n) になります (n は Coun t) 関連リンク Count 135 ( ページを参照 ) Extract 141 ( ページを参照 ) Pop (147 ページを参照 ) OnNotify 143 ( ページを参照 ) 149

76 Delphi Generics.Collections 76Generics.Collections s 説明 容量を現在のアイテム数と同じに設定します TrimExcess は 容量を スタックに格納されているアイテムの数と同じに設定します 関連リンク Count 135 ( ページを参照 ) TrimExcess 31 ページを参照 ( ) TrimExcess 81 ページを参照 ( ) TrimExcess 129 ( ページを参照 ) 151

77 Delphi Generics.Collections 77Generics.Collections 153

78 Delphi Generics.Collections インデックス G Generics.Collections.TList.Items 6 Generics.Collections.TList.LastInd Generics.Collections.TList.OnNotif Generics.Collections.TList.Remove Generics.Collections 153 Generics.Collections.TList.Reverse Generics.Collections.TCollectionNotification Generics.Collections.TList.Sort 1 79 Generics.Collections.TCollectionNotifyEvent Generics.Collections.TList.TrimExc 3 Generics.Collections.TDictionary Generics.Collections.TObjectDictio 5 Generics.Collections.TDictionary.Add Generics.Collections.TObjectDictio 7 Generics.Collections.TDictionary.AddOrSetValue Generics.Collections.TObjectList 9 8 Generics.Collections.TDictionary.Clear Generics.Collections.TObjectList.C 11 Generics.Collections.TDictionary.ContainsKey Generics.Collections.TObjectList.O 13 Generics.Collections.TDictionary.ContainsValue Generics.Collections.TObjectQueue 15 Generics.Collections.TDictionary.Count Generics.Collections.TObjectQueue. 17 Generics.Collections.TDictionary.Create Generics.Collections.TObjectQueue. 19 Generics.Collections.TDictionary.Destroy Generics.Collections.TObjectQueue. 21 Generics.Collections.TDictionary.Items Generics.Collections.TObjectStack 23 Generics.Collections.TDictionary.OnKeyNotify Generics.Collections.TObjectStack. 25 Generics.Collections.TDictionary.OnValueNotify Generics.Collections.TObjectStack. 27 Generics.Collections.TDictionary.Remove Generics.Collections.TObjectStack. 29 Generics.Collections.TDictionary.TrimExcess Generics.Collections.TQueue 31 109 Generics.Collections.TDictionary.TryGetValue Generics.Collections.TQueue.Clear 33 Generics.Collections.TDictionaryOwnerships Generics.Collections.TQueue.Count 35 Generics.Collections.TList 37 Generics.Collections.TQueue.Create Generics.Collections.TList.Add Generics.Collections.TQueue.Dequeu 39 Generics.Collections.TList.AddRange Generics.Collections.TQueue.Destro 41 Generics.Collections.TList.BinarySearch Generics.Collections.TQueue.Enqueu 43 Generics.Collections.TList.Capacity Generics.Collections.TQueue.Extrac 45 Generics.Collections.TList.Clear Generics.Collections.TQueue.OnNoti 47 Generics.Collections.TList.Contains Generics.Collections.TQueue.Peek 49 1 Generics.Collections.TList.Count Generics.Collections.TQueue.TrimEx 51 Generics.Collections.TList.Create Generics.Collections.TStack 53 131 Generics.Collections.TList.Delete Generics.Collections.TStack.Clear 55 Generics.Collections.TList.DeleteRange Generics.Collections.TStack.Count 57 Generics.Collections.TList.Destroy Generics.Collections.TStack.Create 59 Generics.Collections.TList.Extract Generics.Collections.TStack.Destro 61 Generics.Collections.TList.IndexOf Generics.Collections.TStack.Extrac 63 Generics.Collections.TList.Insert Generics.Collections.TStack.OnNoti 65 Generics.Collections.TList.InsertRange Generics.Collections.TStack.Peek 67 1 a

Delphi Generics.Collections 78 Generics.Collections.TStack.Pop 147 Generics.Collections.TStack.Push 149 Generics.Collections.TStack.TrimExcess 151 b