Java コレクション フレームワークの学習メモ
Java コレクション クラスは、さまざまな数の複数のオブジェクトを格納するために使用でき、スタックやキューなどの一般的なデータ構造を実装できます。配列とは異なり、配列の長さは不変です。配列要素は基本型とオブジェクト型を格納できますが、コレクションはオブジェクト (本質的にはオブジェクトの 参照変数) のみを格納できます。 List、および Map。ここで、Set は順序付けされていない反復不可能なセットを表し、List は順序付けされた反復可能なセットを表し、Map はマッピング関係を持つコレクションを表します。マップ内の key は一意であり、値は次のとおりです。再現可能。このうち、Java5 以降に新たに追加された Set、List、および Queue キューは、Collection から派生したサブインターフェイスです。Set コレクションには、コレクション内のオブジェクト間に明確な順序がありません。 LinkedHashSet、TreeSet、はい SetHashSet のメイン実装クラスは、HashSet コレクション要素が
nullであることを許可しません。 hashCode 値は、hashCode 値に基づいて HashSet 内のオブジェクトの格納場所を決定します。 HashSet では、equals() メソッドと hashCode() メソッドの戻り値を比較することで、2 つのオブジェクトが等しいかどうかを判断します。
LinkedHashSet は HashSet のサブクラスですが、順序を維持するためにリンクされたリストも使用します。要素の挿入順序を維持する必要があるため、HashSet よりもパフォーマンスが若干低くなります。同じ要素を並べることはできません。同様に、TreeSet はコレクション要素がソートされた状態であることを確認して、サイズを比較するためにコレクション要素の comparTo (Object obj) メソッドを呼び出します。要素間の関係を確認し、コレクション要素を昇順に並べ替えます。つまり、自然な並べ替えです。 TreeSet は、Comparator インターフェイスを介してカスタマイズされた並べ替えを実装することもできます。TreeSet コレクション オブジェクトを作成する場合、TreeSet コレクションに関連付けられる Comparator オブジェクトが提供され、Comparator オブジェクトはコレクション要素の並べ替えロジックを担当します。 さまざまな Set パフォーマンスの比較 TreeSet はセット要素の順序を維持するために追加のアルゴリズムを必要とするため、HashSet のパフォーマンスは常に TreeSet より優れています。TreeSet は、ソートされたセットを維持する必要がある場合にのみ使用する必要があります。それ以外の場合は、HashSet を使用する必要があります。利用される。さらに、LinkedHashSet は HashSet のサブクラスであり、通常の挿入および削除操作に対応します。ただし、LinkedHashSet のパフォーマンスは、リンク リストの維持によって発生するオーバーヘッドのためです。 、LinkedHashSet をトラバースするときは高速になります。ただし、set の 3 つの実装クラスはどれもスレッドセーフではありません。通常は、Collections ツール クラスの synchr
onizedSortedSet メソッドを使用して、set コレクションをラップすることができます。たとえば、次のようにします。 code>SortedSet s = Collections.synchronizedSortedSet(new
List コレクションは、順序付けされた反復可能なコレクションを表します。コレクション内の要素には、対応する index
ArrayList と Vector の 2 つの典型的な実装があり、LinkedList
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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

Spring Bootは、Java開発に革命をもたらす堅牢でスケーラブルな、生産対応のJavaアプリケーションの作成を簡素化します。 スプリングエコシステムに固有の「構成に関する慣習」アプローチは、手動のセットアップを最小化します。
