Java コレクション クラスは、さまざまな数の複数のオブジェクトを格納するために使用でき、スタックやキューなどの一般的なデータ構造を実装できます。配列とは異なり、配列の長さは不変です。配列要素は基本型とオブジェクト型を格納できますが、コレクションはオブジェクト (本質的にはオブジェクトの 参照変数) のみを格納できます。 List、および Map。ここで、Set は順序付けされていない反復不可能なセットを表し、List は順序付けされた反復可能なセットを表し、Map はマッピング関係を持つコレクションを表します。マップ内の key は一意であり、値は次のとおりです。再現可能。このうち、Java5 以降に新たに追加された Set、List、および Queue キューは、Collection から派生したサブインターフェイスです。Set コレクションには、コレクション内のオブジェクト間に明確な順序がありません。 LinkedHashSet、TreeSet、はい SetHashSet のメイン実装クラスは、HashSet コレクション要素が
null TreeSet はセット要素の順序を維持するために追加のアルゴリズムを必要とするため、HashSet のパフォーマンスは常に TreeSet より優れています。TreeSet は、ソートされたセットを維持する必要がある場合にのみ使用する必要があります。それ以外の場合は、HashSet を使用する必要があります。利用される。さらに、LinkedHashSet は HashSet のサブクラスであり、通常の挿入および削除操作に対応します。ただし、LinkedHashSet のパフォーマンスは、リンク リストの維持によって発生するオーバーヘッドのためです。 、LinkedHashSet をトラバースするときは高速になります。ただし、set の 3 つの実装クラスはどれもスレッドセーフではありません。通常は、Collections ツール クラスの synchr
onizedSortedSet メソッドを使用して、set コレクションをラップすることができます。たとえば、次のようにします。 code>SortedSet s = Collections.synchronizedSortedSet(new
The ArrayList もあります。 Vector クラスは、再割り当てを可能にする動的 Object[] 配列をカプセル化します。追加された要素の数が配列の長さを超えると、初期の長さは自動的に増加します。 ArrayList と Vector の大きな違いは、ArrayList はスレッド セーフではないのに対し、Vector はスレッド セーフであり、コレクションの同期を確保するためのプログラムを必要としないことです。 Vector はスレッドセーフであるため、Vector カラーのパフォーマンスは ArrayList よりも低くなります。スレッド セーフを確保する必要がある場合でも、一般に Vector を使用することは推奨されません。代わりに、Collections ツール クラスの関連メソッドを使用して、ArrayList をスレッド セーフ クラスにラップします。
Vector には、スタックのデータ構造をシミュレートするために使用される Stack というサブクラスもあります。継承 の関係により、Stack はスレッドセーフであるため、パフォーマンスは比較的低くなります。スタックのデータ構造に使用する必要がある場合は、LinkedList を使用することを検討してください。これは、リンクされたリストに基づいたリストです。特に、要素の挿入と削除は非常に高速です。 LinkedList List インターフェイスと Deque インターフェイスの両方が実装されているため、スタックとして使用できます。 Queue コレクションは、先入れ後出しのキューのデータ構造をシミュレートするために使用されます。 Deque は、両端のキューを表す Queue のサブインターフェイスであり、キューの要素を両端から操作できるようにします。
さらに、Hashtable では null をキーと値として使用することはできません。Hashtable に null を入力しようとすると、null ポインター例外が発生しますが、HashMap ではキーと値を繰り返すことができないため、HashMap には null のみを使用できます。 1 つのキーは null ですが、null の値が複数存在する可能性があります。
HashMap と Hashtable の 2 つのキーが等しいかどうかを判断する基準は、equals() メソッドと hashCode() メソッドによる 2 つのキーの戻り値が等しいことです。
LinkedHashMap は HashMap のサブクラスでもあり、LinkedHashMap はキーの順序を維持するために二重リンク リストを使用します。つまり、反復順序は挿入順序と一致します。要素の挿入順序を維持する必要があるため、全体的なパフォーマンスは HashMap よりもわずかに低くなります。
フレームワークのインターフェースですコレクションはコレクションフレームワークのツールクラスであり、コレクション要素の並べ替え、
クエリ、変更などを行うための多数のメソッドを提供しますオペレーションでは、コレクション オブジェクトを不変に設定し、オブジェクト コレクションに同期制御を実装するためのメソッドも提供します。
以上がJava コレクション フレームワークの学習メモの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。