|
| |
 |
コレクション編 |
 |
◆コレクションとは? |
| コレクションとは複数の要素が集まったグループを表すオブジェクトのことです。 |
| ◆コレクション・フレームワークとは? |
| コレクション・フレームワークとはコレクションを表したり操作したりする統一されたアーキテクチャのことです。 |
| ◆ここでの環境 |
| OS |
Windows XP |
| J2SE SDK |
1.4.1_01 |
|
|
|
| ◆Java実行環境の構築 |
| アプリケーション編を参考にしてJava実行環境を構築してください。 |
| ◆インターフェース |
| セット、リスト、マップなど、種類ごとに異なるコレクションを表すインタフェースがあります。これらはコレクション・フレームワークの基礎を構成します。 |
| ■コレクション・インターフェースの構成 |
 |
| ■コレクション・インターフェースの説明 |
| インターフェース |
説明 |
| Collection |
オブジェクトの集まりを表すもっとも基本的なインターフェースです。 |
| Set |
重複要素のないオブジェクトの集まりを表します。 |
| List |
順序付けられたオブジェクトの集まりを表します。重複を許可します。リスト内のどこに各要素が挿入されるかを制御することができ、ユーザーは位置(インデックス)を指定して各要素にアクセスすることができます。 |
| Map |
キーを値にマッピングするオブジェクトです。キーは重複して登録することはできません。各キーはそれぞれ一つの値にマッピングします。 |
| SortedSet |
要素が自然順序付けに従って昇順にソートされたセットを表します。挿入される要素は、Comparable
インタフェースを実装するか、指定された Comparator によって受け付けられる必要があります。 |
| SortedMap |
キーが自然順序付けに従って昇順にソートされたマップを表します。挿入されるキーは、Comparable
インタフェースを実装するか、指定された Comparator によって受け付けられる必要があります。 |
|
|
| ◆実装 |
| コレクション・インターフェースを実装する複数のクラスがあります。これらのクラスを用途別に使い分けることができます。 |
| ■汎用の実装の概要 |
|
実装 |
ハッシュテーブル |
サイズ
変更可能な配列 |
バランスツリー |
リンクリスト |
ハッシュテーブル
&リンクリスト |
インターフェース |
Set |
HashSet |
|
TreeSet |
|
LinkedHashSet |
List |
|
ArrayList |
|
LinkedList |
|
Map |
HashMap |
|
TreeMap |
|
LinkedHashMap |
|
| ・HashSet |
| HashMap のインスタンスを基づくSet インタフェースを実装します。繰り返し順序について保証しません。 |
| ・TreeSet |
| TreeMap のインスタンスに基づくSet インタフェースを実装します。要素の昇順でソートされます。 |
| ・LinkedHashSet |
| 繰り返し順序を持つSet インタフェースのハッシュテーブルとリンクリストの実装です。要素がセットに挿入された順序を保持します。要素をセットに再挿入する場合、挿入順は影響を受けません。 |
| ・ArrayList |
| List インタフェースのサイズ変更可能な配列の実装です。配列のサイズを操作するメソッドを提供します。 |
| ・LinkedList |
| List インタフェースのリンクリストの実装です。リストの先端および終端にある要素を取得、削除したり、先端および終端に要素を挿入したりするメソッド
を提供します。同期化されないことを除いてVectorとほぼ同等です。 |
| ・HashMap |
| Map インタフェースのハッシュテーブルに基づく実装です。マップの順序について保証しません。同期化されないこととnullを許容することを除いてHashtableとほぼ同等です。 |
| ・TreeMap |
| SortedMap インタフェースの実装に基づく Red-Black ツリーです。マップがキーの昇順でソートされます。 |
| ・LinkedHashMap |
| 繰り返し順序を持つMap インタフェースのハッシュテーブルとリンクリストの実装です。キーがマップに挿入された順序を保持します。キーをマップに再挿入する場合、挿入順は影響を受けません。 |
|
| ◆比較 |
| ■HashSetとTreeSetとLinkedHashSet |
| 重複要素のないオブジェクトの集まりを管理するクラスはHashSetとTreeSetとLinkedHashSetがあります。Setの機能だけ必要な場合はHashSetを使用します。要素を昇順にソートする必要がある場合にTreeSetを使用します。要素の挿入順を保持する必要がある場合にLinkedHashSetを使用します。 |
| (関連) コレクション(Set)編 |
| ■ArrayListとLinkedList |
| 順序付けられたオブジェクトの集まりを管理するクラスはArrayListとLinkedListがあります。この2つのクラスの性能を比較します。 |
| |
インデックス
アクセス |
Iterator
アクセス |
追加 |
挿入 |
削除 |
| ArrayList |
○ |
○ |
○ |
遅 |
遅 |
| LinkedList |
遅 |
○ |
○ |
○ |
○ |
|
| ArrayListはインデックスによるランダムアクセスの性能が優れていますが、要素の挿入、削除には向いていません。LinkedListは逆に要素の挿入、削除の性能が優れていますが、インデックスによるランダムアクセスには向いていません。 |
| (関連) コレクション(List)編 |
| ■HashMapとTreeMapとLinkedHashMap |
| キーを値にマッピングする場合に使用するクラスはHashMapとTreeMapとLinkedHashMapがあります。Mapの機能だけ必要な場合はHashMapを使用します。キーを昇順にソートする必要がある場合にTreeMapを使用します。キーの挿入順を保持する必要がある場合にLinkedHashMapを使用します。 |
| (関連) コレクション(Map)編 |
|
■書籍
Java関連の書籍 |
|
| |
|
| |
| ツールの部屋
- Java関連の書籍 - デザインパターン - 情報交換掲示板
- HOME |