Java コレクション クラスは java.util パッケージに格納され、オブジェクトを格納するために使用されるコンテナです。 Java の非重複コレクションを見てみましょう。
Set: HashSet() の一般的な実装は、順序付けされていない反復不可能なセットです。
#1. Set hashSet = new HashSet(); ①. HashSet: 要素の順序は保証できません; 繰り返し可能ではありません; スレッドセーフではありません; セット要素は NULL になる可能性があります;* TreeSet() パラメータなしのコンストラクターを使用して TreeSet オブジェクトを作成する場合、その中に配置される要素のクラスは Comparable インターフェイスを実装する必要があるため、その中に null 要素を配置することはできません。
上記 3 つの Set インターフェイスの実装クラスの比較:
1. どの要素も繰り返してはなりません
2. すべて スレッドセーフなクラスではありません 解決策: Set set = Collections.synchronizedSet(set object)
相違点:
HashSet: 要素を追加する順序は異なります。が保証されており、最下位層はハッシュ テーブル アルゴリズムを使用しているため、クエリ効率が高いです。 2 つの要素が等しいかどうかを判断するには、equals() メソッドは true を返し、hashCode() の値は等しいです。つまり、HashSet に格納される要素は、equals() メソッドと hashCode() メソッドをカバーする必要があります
LinkedHashSet: HashSet のサブクラス 最下層はハッシュ テーブル アルゴリズムとリンク リストを使用しますアルゴリズムにより、要素の追加順序によってもクエリの効率が保証されます。ただし、全体的なパフォーマンスは HashSet よりも低くなります。TreeSet: 要素の追加順序は保証されませんが、セット内の要素はソートされます。最下層は赤黒ツリー アルゴリズムを使用します (ツリー構造は範囲クエリに適しています)
マップ: キーと値のキーと値のペア、キーの繰り返しは許可されません、値は
1 になります。厳密に言えば、Map はセットではなく、2 つのセット間のマッピング関係です。
2. これら 2 つのコレクション内の各データにはマッピング関係があり、1 つのデータとみなすことができます。それは Entry(key,value) です。マップは複数のエントリで構成されているように見えます。
3. Map コレクションは Collection インターフェイスも Iterable インターフェイスも実装していないため、Map コレクションに対して for-each 走査を実行することはできません。 Java についてさらに詳しく知りたい場合は、Java 基本チュートリアル
列に注目してください。
以上がJavaのユニークなコレクションとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。