Javaセットの例



Java Javaセット 作成セッションプロセスで

Java Setインターフェースは、重複する要素を含まない、順序付けられていない要素のコレクションです。 セットインターフェイスは、Javaの数学セットの機能を提供します。 このチュートリアルでは、JavaセットメソッドのさまざまなJavaセットの例とその使用法について説明します。

セットインターフェースの特徴

  • 重複する値を許可しないことを意味する一意の要素が含まれています
  • Javaセットには、要素を格納する順序がありません
  • インデックスがないため、位置に基づいて要素にアクセスすることはできません。
  • これはインターフェースであるため、Set実装クラスのいずれかを使用して実装できます。
  • コレクションインターフェイスを拡張します

JavaセットとJavaリストの違い

  • Java Setは順序付けられていない要素のコレクションですが、 リスト 要素の順序付けられたコレクションです。
  • Setにはインデックスベースのアクセス権はありませんが、Listには要素にアクセスできるインデックスがあります。
  • セットでは、重複する値を追加することはできませんが、リストでは重複する値を追加できます。

セットの実装

Since Javaセットはインターフェースです、オブジェクトを直接作成することはできません。 したがって、HashSet、TreeSet、LinkedHashSet、EnumSetなどのクラスのXNUMXつを実装する必要があります。 各セットクラスは、以下で説明するように異なる方法で動作します。

  • HashSet –セットをトラバースしている間、要素の順序や順序はありません。
  • TreeSet –並べ替えとともに要素の順序を保持します
  • LinkedHashSet –挿入と同じ要素の順序を保持します

Javaを設定する

Javaセットの例

setインターフェースを実装するには、java.util。*パッケージをインポートする必要があります。それ以外の場合は、個々のクラスパッケージを個別にインポートします。

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

public class SetExample {

  public static void main(String[] args) {
    Set set1 = new HashSet();
    Set set2 = new TreeSet();
    Set set3 = new LinkedHashSet();

  }

}

以下に示すように、ジェネリックセットを作成することもできます。 ここでは、HashSetを文字列型として指定し、TreeSetを整数型として指定しています。 したがって、これらのオブジェクトは、これらの特定のタイプの値のみを受け入れます。

import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

public class SetExample {

  public static void main(String[] args) {
    Set<String> setstring = new HashSet<String>();
    Set<Integer> setint = new TreeSet<Integer>();
  }
}

JavaSetメソッド

セットには、以下のメソッドに加えて、コレクションインターフェイスのすべてのメソッドが含まれています。

方法説明パラメーター
boolean add(String e)まだ存在しない場合は、セットに要素を追加します。 要素がセットにすでに存在する場合はfalseを返し、呼び出しを無視しますe-セットに追加される要素
ブールaddAll(Collectionc)コレクションが存在しない場合は、コレクション内のすべての要素をセットに追加しますc-追加する要素のコレクション
void clear()セットからすべての要素を削除すると、セットは空になります
boolean contains(Object o)セットに要素が含まれているかどうかを確認し、存在する場合はtrueを返しますo-セット内で検索される要素
ブールcontainsAll(コレクションc)コレクションがセットのサブセットであるかどうかを確認し、存在する場合はtrueを返しますc-要素のコレクション
boolean equals(Object o)渡されたオブジェクトとのセットの同等性をチェックします。 両方がセットであり、同じ要素とサイズが含まれている場合はtrueを返しますo-比較する必要のあるオブジェクト
ブールisEmpty()セットが空かどうかを確認し、空の場合はtrueを返します
イテレータiterator()セット内の要素をナビゲートするためのイテレータを返します
boolean remove(Object o)セットから特定の要素を削除し、要素が削除された場合はtrueを返しますo-削除する要素
boolean removeAll(Collection c)存在する場合、コレクション内のすべての要素をセットから削除しますc-削除する要素のコレクション
ブールretainAll(コレクションc)セット内のコレクション内の要素のみを保持します。つまり、コレクションの一部ではない他のすべての要素を削除します。c-保持する要素のコレクション
int size()セット内の要素の数を返します
SplitIterator splititerator()セット内の要素に対して分割イテレータを作成します
Object [] toArray()セット内のすべての要素を配列に変換します
ストリングtoString()オブジェクトの文字列表現を返します

例外を設定する

Javaセットスロー 以下の例外

  • UnsupportedOperationException
  • NullPointerException
  • ClassCastException
  • IllegalArgumentException

セットから要素を追加および削除します

以下の例では、最初にHashSetを作成し、2つの要素を追加します。 次に、別のHashSetを作成し、さらに2つの要素を追加します。 次に、これはコレクションとして最初のセットに追加されます。

削除の例では、最初に1番目のセットから要素を削除し、次にXNUMX番目のセットからすべての要素を削除します。

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

public class SetExample {

  public static void main(String[] args) {

    Set<String> setstring = new HashSet<String>();
    setstring.add("Java");
    setstring.add("Javascript");
    System.out.println(setstring);
    
    Set<String> string2 = new HashSet<String>();
    string2.add("C");
    string2.add("C++");
    
    setstring.addAll(string2);
    System.out.println("Elements in set after addAll operation");
    System.out.println(setstring);
    
    setstring.remove("Javascript");
    System.out.println("Elements in the set after remove opertaion");
    System.out.println(setstring);
    
    setstring.removeAll(string2);
    System.out.println("Elements in the set after removeAll opertaion");
    System.out.println(setstring);
    
  }
  

}
Output:
[Java, Javascript]
Elements in set after addAll operation
[Java, C++, C, Javascript]
Elements in the set after remove opertaion
[Java, C++, C]
Elements in the set after removeAll opertaion
[Java]

TreeSetを使用した要素の並べ替え

ここでは、整数の配列を宣言してから、forループを使用して要素をHashSetに追加しました。 出力では、セットされた機能である重複要素「12」が含まれていないことがわかります。 以下の例に示すように、TreeSetを使用してHashSetの要素を並べ替えることができます。

import java.util.*;

public class SetSort {

  public static void main(String[] args) {
    Set<Integer> numbers = new HashSet<Integer>();
    int[] a = {34,78,12,67,45,23,12,89};
    for(int i=0;i<a.length;i++) {
      numbers.add(a[i]);
    }
    System.out.println("Elements in HashSet");
    System.out.println(numbers);
    
    Set<Integer> treeset = new TreeSet<Integer>(numbers);
    System.out.println("Elements in treeset after sort");
    System.out.println(treeset);
  }

}
Output:
Elements in HashSet
[34, 67, 23, 89, 12, 45, 78]
Elements in treeset after sort
[12, 23, 34, 45, 67, 78, 89]

Javaセットを配列に変換する

セットをに変換できます 配列 以下に説明するように、toArrayメソッドを使用した要素の数。

import java.util.*;

public class SetArray {

  public static void main(String[] args) {
    Set<String> names = new HashSet<String>();
    names.add("Roshan");
    names.add("Kiran");
    names.add("Tejas");
    names.add("Karthik");
    
    String[] strnames = names.toArray(new String[names.size()]);
    for(String strvalues: strnames) {
      System.out.println(strvalues);
    }

  }

}
Output:
Roshan
Kiran
Tejas
Karthik

Set操作のJavaプログラムの例(和集合、積集合、および差)

この例では、2つの整数セットを作成しました。 2セットの和集合を実行するには、addAllメソッドを使用します。このメソッドは、両方のセットからすべての一意の要素を追加します。 共通部分の場合、retainAllメソッドを使用して、セット間の共通要素のみを保持します。 2つのセットの違いを見つけるために、removeAllメソッドを使用します。このメソッドは、set2の共通要素とともにset1のすべての要素を削除します。

import java.util.*;

public class SetOperations {

  public static void main(String[] args) {
    Set<Integer> set1 = new HashSet<Integer>();
    set1.add(3);
    set1.add(7);
    set1.add(5);
    set1.add(1);
    System.out.println("Set 1 : " + set1);
    
    Set<Integer> set2 = new HashSet<Integer>();
    set2.add(3);
    set2.add(4);
    set2.add(9);
    set2.add(5);
    
    System.out.println("Set 2 : " + set2);
    
    Set<Integer> a = new HashSet<Integer>(set1);
    a.addAll(set2);
    
    System.out.println("Union of Set 1 and Set 2 : " + a);
    
    Set<Integer> b = new HashSet<Integer>(set1);
    b.retainAll(set2);
    System.out.println("Intersection of Set 1 and Set 2 : " + b);
    
    Set<Integer> c = new HashSet<Integer>(set1);
    c.removeAll(set2);
    System.out.println("Difference between Set 1 and Set 2 : " + c);
  }

}
Output:
Set 1 : [1, 3, 5, 7]
Set 2 : [3, 4, 5, 9]
Union of Set 1 and Set 2 : [1, 3, 4, 5, 7, 9]
Intersection of set 1 and set 2 : [3, 5]
Difference between 2 sets : [1, 7]

結論

このチュートリアルでは、Javaでのセットと、さまざまな操作のためにセットを作成して使用する方法について学習しました。

参照