集合フレームワーク(3)


8. HashSet


最も代表的な集合,
  • Setインタフェースを採用
  • の保存順序は保持されないため、保存順序を保持するにはLinkedHashSet,
  • を使用する必要があります.
  • HashSetは内部でHashMapを使用して作成され、HashSetの名前はハッシュを使用して実装されるため、
  • と命名された.

    9. TreeSet

  • データをバイナリ検索ツリーとして格納集合クラス
  • ツリーは、データを順番に格納するのではなく、データを検索して格納する必要があります.削除する場合は、ツリーの一部を再編成する必要があるため、リンクリストよりもデータの追加/削除時間が長くなります.
  • の検索とソートは、配列またはリンクリストに比べて強力です.

    10.HashMapとHashTable

  • HashtableはHashMapの旧バージョン
  • Mapであるため、キー値と値を組み合わせてエントリ
  • として記憶する.
  • ハッシュは大量のデータを検索する上で優れている.
  • キーまたは値空きメモリ
  • キーと値はいずれもオブジェクトタイプで格納ため、HaspMapの値でHashMap
  • を再格納することができる.
    *ハッシュおよびハッシュ関数
  • ハッシュ:ハッシュ関数を用いてハッシュリストにデータを格納して検索する方法
  • .
  • データ取得プロセス
    検索する値
  • のキーを使用してハッシュ関数
  • を呼び出す
  • ハッシュ関数の計算結果(ハッシュコード)は、その値を格納リンクリスト
  • を見つける.
  • リンクリストで検索された鍵と一致するデータ
  • を見つける.

    11. TreeMap

  • は、鍵と値のペアのデータ
  • をバイナリ検索ツリーとして記憶する.
  • 検索およびソートに適した集合クラス
  • ほとんどの場合、HashMapはTreeMapより優れているので、HashMapを使用することが望ましい.範囲検索やソートが必要な場合はTreeMapを使用する.

    12. Properties


    より単純な集合クラスは、
  • (String,String)として鍵と値を格納する
  • は、アプリケーションの優先パラメータに関連する属性を格納し、ファイルからのデータの読み取りと書き込みの利便性を提供するために使用される.

    13. Collections

  • 集合方法
  • 1)同期セット

  • 新しく追加されたセット(ArrayList、HashMapなど)は、必要に応じて同期メソッドのみを使用して同期処理を行うように変更されました.
  • 同期が必要な場合は「synchronized」
  • を追加
        static Collection synchronizedCollection (Collection c)
        static List synchronizedList(List list)

    2)可変集合の作成

  • コレクションに格納データを保護するために、コレクションを変更することはできません.つまり、読み取り専用として作成する必要がある場合は、
  • を使用するために「変更不可」を追加できます.
        static Set unmodifiableSet (Set s)
        static Map unmodifiableMap (Map m)

    3)モノトーンセットの作成


    1つのオブジェクトのみを格納するコレクションを作成する場合は、singletonを使用します.
        static List singletonList(Object o)
        static Set singleton(Object o)
        static Map singletonMap(Object key, Object value)

    4)1つのオブジェクトのみを格納するコレクションの作成

  • コレクションで指定したタイプのオブジェクトのみを格納することを制限する場合は、
  • を使用します.
        static List checkedList(List list, Class type)
    
        List list = new ArrayList();
        List checkedList = checkedList(list, String.class) // String만 저장가능
        // 두 번째 매개변수에 저장할 객체의 클래스를 지정하면 된다.
    
    JAvaの定義第11章