リストとセットの違いは何ですか

目次:

Anonim

NS 主な違い リストとセットの間はそれです リストは重複する値を格納しますが、セットは重複する値を格納しません。

Javaプログラミング言語はコレクションをサポートしています。リストとセットはコレクション階層に属します。どちらも、コレクションインターフェイスを拡張するインターフェイスです。これらのインターフェイスは、コレクションに対して操作を実行するためのadd、remove、clear、sizeなどのメソッドを提供します。

対象となる主要分野

1.リストとは –定義、機能 2.設定内容 –定義、機能 3.リストとセットの違いは何ですか –主な違いの比較

重要な用語

ArrayList、Collections、HashSet、Interface、LinkedList、List、Set、Vector

リストとは

リストは、コレクションインターフェイスの子インターフェイスです。挿入された順序で要素を維持することができます。さらに、重複する値を含めることもできます。クラスArrayList、LinkedList、およびVectorは、Listインターフェイスを実装します。プログラマーは、次のようにそれぞれのインスタンスを作成できます。

リストlist1 = new ArrayList();

リストlist2 = new LinkedList();

リストlist3 = new Vector();

Genericsを使用して特定のタイプのオブジェクトを格納することもできます。構文は次のとおりです。

リストリスト=新しいリスト();

Objは、リストに保存できるオブジェクトのタイプを指します。例えば、

リストlist1 = new ArrayList();

list1は、整数型オブジェクトを格納するArrayListです。同じ理論は、LinkedListやVectorなどの他のリストタイプにも適用できます。

ArrayListはスレッドセーフを提供しません。したがって、複数のスレッドから同じArrayListにアクセスすると、データに不整合が生じる可能性があります。 LinkedListでは、要素は順方向と逆方向に相互に接続できます。さらに、VectorはArrayListに似ていますが、スレッドセーフを提供します。

プログラム例は以下のとおりです。

図1:ArrayListを使用したJavaプログラム

LettersはArrayListのオブジェクトです。 addメソッドは、ArrayListに要素を挿入するのに役立ちます。 iterator()は、イテレータをコレクションの先頭に戻します。 whileループは、各反復でhasNext()メソッドを呼び出します。コレクションで使用可能な要素がある限り、trueを返します。ループ内で、next()メソッドは、コレクション内の次のデータ項目を取得するのに役立ちます。 System.out.printlnは、コンソールに要素を表示します。

出力を観察すると、ArrayListがデータの挿入順序を維持していることがわかります。さらに、文字「m」が2回挿入されます。 ArrayListには両方のmが含まれています。したがって、リストには重複する値が格納されます。

セットとは

セットは、コレクションインターフェイスの子インターフェイスです。重複する要素はサポートしていません。したがって、一意の要素セットを維持します。 HashSet、LinkedHashSet、およびTreeSetクラスは、Setインターフェイスを実装します。プログラマーは、次のようにそれぞれのインスタンスを作成できます。

set set1 = new HashSet();を設定します。

セットset2 = new LinkedHashSet();

セットset3 = new TreeSet();

Genericsを使用して、特定のタイプのオブジェクトを格納できるようにすることもできます。構文は次のとおりです。

セットセット=新しいセット();

Objは、セットが格納できるオブジェクトのタイプを指します。

例えば、

set set1 = new HashSet();を設定します。

set1は、整数型オブジェクトを格納するHashSetです。同じ理論は、LinkedHashSetやTreeSetなどの他のセットタイプにも適用できます。

HashSet、LinkedHashSet、およびTreeSetクラスは、Setインターフェイスを実装します。 HashSetは、データの挿入順序を維持しません。 LinkedHashSetは、データの挿入順序を維持します。さらに、TreeSetはデータの挿入順序を維持しませんが、要素をソートされた方法で格納します。プログラム例は以下のとおりです。

図2:HashSetを使用したJavaプログラム

文字はHashSetのオブジェクトです。 addメソッドは、要素をHashSetに挿入するのに役立ちます。このプログラムには、上記のプログラムと同様に、iterator()、hasNext()、およびnext()メソッドも含まれています。

出力を観察すると、HashSetがデータの挿入順序を維持していないことがわかります。さらに、文字「m」は2回挿入されますが、mは1つしか含まれていません。したがって、Setは重複する値を格納しません。

リストとセットの違い

意味

リストインターフェイスは、インデックスに基づいて挿入や削除などの操作を実行するメソッドを含むコレクションのサブインターフェイスです。一方、Set Interfaceは、一意の要素を維持しながら要素の挿入や削除などの操作を実行するメソッドを含むCollectionのサブインターフェイスです。したがって、これがリストとセットの根本的な違いです。

複製

ListとSetの主な違いは、Listは重複する値を格納するのに対し、Setは重複する値を格納しないことです。

クラス

ArrayList、LinkedList、およびVectorはListインターフェイスを実装し、HashSet、LinkedHashSet、およびTreeSetクラスはSetインターフェイスを実装します。

ListIterator

ヌル値

さらに、ListとSetのもう1つの違いは、null値です。リストには多くのnull値を含めることができますが、セットには1つのnull値しか含めることができません。

結論

ListとSetは、コレクション階層の2つのインターフェイスです。 ListとSetの主な違いは、Listは重複する値を格納するのに対し、Setは重複する値を格納しないことです。つまり、リストには同じ要素を複数回含めることができますが、セットには一意の要素のみが含まれます。

リファレンス:

1.「Javaのリストインターフェイスと例」 GeeksforGeeks、2018年11月26日、こちらから入手可能2。 「Javaで設定してください。」 GeeksforGeeks、2018年12月11日、こちらから入手できます。

リストとセットの違いは何ですか