Javaコレクションフレームワーク(JCF)
Java Collection Framework
Java Collection Frameworkは、コレクションオブジェクトのコレクションを表します。
コレクションフレームワークは、主に、Javaオブジェクトを格納、取得、操作、および変換できる、適切に設計されたインターフェイス、クラス、および暗黙のアルゴリズムのセットで構成されています。コレクションでは、一部のコレクションは重複要素の保存を許可し、一部は重複要素を保存できず、一部のストレージは順序付けられ、一部のストレージは順序付けされていません。主なコレクションオブジェクトは、map、set、list、およびその他の抽象データ型です。
SetインターフェイスはCollectionを継承しますが、コレクション内の要素の重複は許可されません。
リストインターフェイスはコレクションを継承し、コレクション内での重複を許可し、位置インデックスを導入します。
マップインターフェイスは、コレクションインターフェイスとは何の関係もありません。 Mapの一般的なアプリケーションは、キーワードによって格納された値にアクセスすることです。これらの値にはすべて、単一の独立した要素ではなく、キーと値のペアが含まれています。
リスト(要素にはインデックスがあり、要素は繰り返すことができます)
配列の実装に基づくArrayList、Linklist、Vector(廃止)ベクトル
- ArrayListは配列に基づいており、データの検索は高速ですが、データの挿入と削除は低速です。
- LinkedListは、リンクリストの実装に基づいています。データの検索には時間がかかりますが、データの挿入と削除はすばやく行われます。
- ベクトルは配列に基づいて実装され、スレッドセーフですが、追加、削除、変更、およびチェックの効率は多少低下します。
セット(セットにはインデックスがなく、要素を繰り返すことはできません)
- ハッシュセット(ハッシュテーブルに相当)
- ツリーセット(二分木に相当)
マップ(キーと値のペア)
- HashMap(キー値はハッシュアルゴリズムによって検索されます)
- LinkedHashMap(キー値はハッシュリンクリストを介して検索されます)
- TreeMap(キー値はツリー全体で検索されます)
- ハッシュテーブル(スレッドセーフ)