ホームページ >Java >&#&チュートリアル >Java における Set と List の関係と違いの概要

Java における Set と List の関係と違いの概要

高洛峰
高洛峰オリジナル
2017-01-22 15:25:031929ブラウズ

両方のインターフェイスは Collection.

List (インターフェイス) から継承されます

Order は要素の特定の順序が維持されることを保証する List の最も重要な機能です
——ArrayList は要素への高速なランダム アクセスを可能にします
—— LinkedList ペア シーケンシャル アクセスが最適化され、List の途中での挿入と削除のオーバーヘッドが大きくなりません。addFrist()、addLast()、getFirst、getLast、removeFirst、removeLast() メソッドを使用できます。スタック/キュー/双方向キューとして使用されます。

Set (インターフェース)

Set に格納される各要素は一意である必要があり、要素の順序が維持されることは保証されません。Set に追加されるオブジェクトは定義する必要があります。 equals() メソッド
-- 高速検索用に設計された HashSet セット、保存されます。 HashSet オブジェクトは hashCode() を定義する必要があります
-- TreeSet は順序を保護する Set であり、Set から順序付けされたシーケンスを抽出するために使用できます。
--LinkedHashSet は HashSet のクエリ速度を持ち、要素の順序を維持するために内部でリンクされたリストを使用します。

保存方法が異なります。

TreeSet は要素を並べ替えるために赤黒ツリーのツリー データ構造を使用します。
HashSet は、高速クエリ用に特別に設計されたハッシュ関数を使用します。
LinkedHashSet は、クエリを高速化するために内部でハッシュを使用します。

HashSet/TreeSet を使用する場合、クラスに対しては、equals() を定義する必要があり、HashCode() は、HashSet に対して使用します。プログラミング スタイルとして、equals() をオーバーライドする場合は、同時に hashCode() もオーバーライドする必要があります。 Java における Set と List の関係と違いについては、PHP の中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。