本質的に、List と Set はインターフェイスであり、Collection インターフェイスを継承します。私たちがよく使う ArrayList と HashSet はそれぞれ List と Set インターフェースを継承しており、ジェネリックスを使用しているため、実際のアプリケーションで使用するために実際の型を指定することができます。通常、オブジェクトを保存するためにこれらを使用します。もちろん、Map もより頻繁に使用されます。それらはすべて、挿入、削除、検索のためのインターフェイスを提供し、Iterator の使用をサポートします。では、List と Set の違いは何でしょうか。また、使用する際にはどのように区別すればよいのでしょうか?
List と Set の違い
(1) List と Set の非常に重要な違いは、重複要素の存在が許可されるかどうかです。List では重複要素の挿入が許可されますが、List では重複要素の挿入が許可されます。 Set では重複要素は許可されず、同じ要素が挿入された場合でも置き換えられます。同じ要素が ArrayList と HashSet にそれぞれ挿入されていることを確認しました:
HashSet<String> hset = new HashSet<String>(); ArrayList<String> arrlst = new ArrayList<String>(); hset.add("hello"); hset.add("hello"); arrlst.add("hello"); arrlst.add("hello"); System.out.println("hset size: "+hset.size()+" toString: "+hset.toString()); System.out.println("arrlst size: "+arrlst.size()+" toString: "+arrlst.toString());
実行結果:
PS: JDK のソース コードを見ると、 HashSet の実装が HashMap を通じて行われることがわかります。
Java 学習ビデオの推奨: Java 入門
# (2) List と Set のもう 1 つの重要な違いは、要素が格納される順序に関連しています。 List は順序付きコレクションですが、Set は順序なしコレクションです。 List は要素が挿入される順序を保持します。つまり、以前に挿入された要素のインデックスは、後で挿入された要素のインデックスよりも小さくなります。 Set は挿入順序を保持しません。同様に、検証してみましょう:HashSet<String> hset = new HashSet<String>(); ArrayList<String> arrlst = new ArrayList<String>(); hset.add("1"); hset.add("3"); hset.add("2"); arrlst.add("1"); arrlst.add("3"); arrlst.add("2"); System.out.println("hset size: "+hset.size()+" toString: "+hset.toString()); System.out.println("arrlst size: "+arrlst.size()+" toString: "+arrlst.toString());実行結果:
以上がJava コレクションのセット インターフェイスとリスト インターフェイスの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版
便利なJavaScript開発ツール
