インターフェイス:赤;実装クラス:ブラックフォント
1。コレクションコレクション
コレクション
| _____セット(ハッシュセット)
| | _____ソートセット(ツリーセット)
| _____リスト(ArrayList、LinkedList、Vector)
コレクション:コレクションレベルのルートインターフェイス。 JDKは、このインターフェイスの実装クラスを提供しません。
リスト:秩序ある(配置の順序で)、繰り返すことができ、添え字を持っています。
セット:順序付けられていない、繰り返し不可能、添え字なし。
sortedset :セットインターフェイスのサブインターフェイスです。ソートセットの要素は(アルファベット順の昇順で)順序付けられます。
比較可能なインターフェイスの比較方法により、要素は整然とした方法で実装されます。配置されたすべての要素は、比較可能なインターフェイスを実装する必要があります(または指定されたコンパレータによって受け入れられます)。
リストインターフェイスの実装クラス間の違い:
ArrayList :本質的にアレイです。スレッドは安全ではありません。クエリ(get/set)は高速で、追加/削除(追加/削除)が遅いです。
LinkedList :本質的に双方向のリンクリスト。スレッドは安全ではありません。クエリ(get/set)が遅い、追加/削除は高速です。
ベクトル:ArrayListとほとんどまったく同じです。唯一の違いは、ベクトルが同期され、スレッドセーフであることです。
2。マップコレクション
マップ(ハッシュマップ、ハッシュテーブル)
| _____ sortedmap (treemap)
マップ:キー値ペアを保存します。キーとキーを含めることができず、値を重複させることができます。
sortedMap :MapのサブインターフェイスSORTEDMAPは、昇順でキーを配置するマップです。
HashMap 、 Hashtable 、 Treemapの違い
Hashmap :スレッドは安全ではありません。キーと値の両方がヌルになる可能性があります。要素は無秩序です。基礎となる層は、ハッシュテーブルデータ構造です。
ハッシュテーブル:スレッドセーフ。鍵も価値もヌルではありません。要素は無秩序です。基礎となる層は、ハッシュテーブルデータ構造です。
Treemap :スレッドは安全ではありません。鍵も価値もヌルではありません。要素は(昇順でアルファベット順に)順序付けられます。基礎となる層は、バイナリツリーデータ構造です。
3.複製せずにマップのキー値とセット値を実装する方法
マップは同じキーを置き、前のキーをカバーします
マップマップ= new Hashmap();
map.put( "name"、 "Zhang San");
map.put( "name"、 "wangwu"); -------効果的、前の上書き
セットが同じ要素を置くと、最初の要素は有効で、次の要素は
set set = new Hashset();
set.add( "111"); ---有効
set.add( "222"); ----それはすでに存在しており、入れられないと判断します
1。HashmapPutとHashset add
HashsetのADD()メソッドは、実際にHashmapのPut()メソッドを呼び出して、収集要素を追加するときにキー値ペアを追加するためです。 hashmapのput()メソッドは、最初の呼び出し.hashcode()を呼び出して、戻り値が等しいと判断します。返品値が等しい場合、等しい比較を通じてtrueを返します。最後に、キーオブジェクトは等しく、すでにハッシュマップに存在すると考えられています。
2。TreemapPutとTreeset Add
PUTメソッドがTreemapで呼び出されてキー値を追加すると、オブジェクトの比較(または比較)メソッドが呼び出され、すべてのキーが比較されます。このメソッドが0を返すと、2つのキーが等しいと見なされます。
ツリーセットに要素を追加するときは、Comparetoを呼び出すか、メソッドを呼び出して要素の位置を見つけます。つまり、return Comparetoまたは比較0と比較して、同じ位置、つまり同じ要素と見なされます。