の セット で利用可能なインターフェイスです。 java.util パッケージ。の セット インターフェイスは Collection インターフェイスを拡張します。重複が許可されない、順序付けされていないコレクションまたはリストは、 コレクションインターフェイス 。 set インターフェイスは、数学的セットを作成するために使用されます。 set インターフェイスは、コレクション インターフェイスのメソッドを使用して、同じ要素の挿入を回避します。 ソートセット そして ナビゲート可能セット は、セットの実装を拡張する 2 つのインターフェイスです。
上の図では、 ナビゲート可能セット そして ソートセット どちらもインターフェイスです。の ナビゲート可能セット SortedSet を拡張するため、挿入順序は保持されず、データが並べ替えられた方法で保存されます。
SetExample1.java
import java.util.*; public class setExample{ public static void main(String[] args) { // creating LinkedHashSet using the Set Set data = new LinkedHashSet(); data.add('JavaTpoint'); data.add('Set'); data.add('Example'); data.add('Set'); System.out.println(data); } }
出力:
注: このセクション全体を通じて、ファイル名を使用してプログラムをコンパイルし、クラス名を使用してプログラムを実行しました。ファイル名とクラス名が違うからです。
Set インターフェイスの操作
セット上では、交差、和集合、差分などの基本的な数学演算をすべて実行できます。
2 つのセット、つまり set1 = [22, 45, 33, 66, 55, 34, 77] と set2 = [33, 2, 83, 45, 3, 12, 55] があるとします。セットに対して次の操作を実行できます。
セットでは、 全て追加する() メソッドは結合を実行するために使用されます。 すべて保持() メソッドは交差を実行するために使用され、 すべて削除する() メソッドは差分を実行するために使用されます。これらのメソッドを使用して交差、和集合、差分演算を実行する方法を理解するための例を見てみましょう。
SetExample2.java
import java.util.*; public class SetOperations { public static void main(String args[]) { Integer[] A = {22, 45,33, 66, 55, 34, 77}; Integer[] B = {33, 2, 83, 45, 3, 12, 55}; Set set1 = new HashSet(); set1.addAll(Arrays.asList(A)); Set set2 = new HashSet(); set2.addAll(Arrays.asList(B)); // Finding Union of set1 and set2 Set union_data = new HashSet(set1); union_data.addAll(set2); System.out.print('Union of set1 and set2 is:'); System.out.println(union_data); // Finding Intersection of set1 and set2 Set intersection_data = new HashSet(set1); intersection_data.retainAll(set2); System.out.print('Intersection of set1 and set2 is:'); System.out.println(intersection_data); // Finding Difference of set1 and set2 Set difference_data = new HashSet(set1); difference_data.removeAll(set2); System.out.print('Difference of set1 and set2 is:'); System.out.println(difference_data); } }
出力:
説明:
上記のコードでは、まず、整数型の A と B という 2 つの配列を作成します。その後、整数型の 2 つのセット、つまり set1 と set2 を作成します。両方の配列をリストに変換し、配列 A の要素を set1 に追加し、配列 B の要素を set2 に追加します。
結合を実行するために、新しいセットを作成します ユニオンデータ set1 の同じ要素を使用します。次に、set の addAll() メソッドを呼び出し、set2 を引数として渡します。このメソッドは、これらすべての要素を ユニオンデータ これらはそこには存在せず、両方のセットの和集合を与えます。
交差を実行するために、新しいセットを作成します 交差点データ set1 の同じ要素を使用します。次にsetのretainAll()メソッドを呼び出し、引数としてset2を渡します。このメソッドは、これらすべての要素を 交差点データ これらはset2に存在し、intersection_dataに保存されます。これで、intersection_data には両方のセットの交差値が含まれます。
差分を実行するために、新しいセットを作成します 差分データ set1 の同じ要素を使用します。次に、set のremoveAll() メソッドを呼び出し、set2 を引数として渡します。このメソッドは、これらの要素をすべて 差分データ これらは set2 に存在し、両方のセットの差を与えます。
セットメソッド
セットインターフェイスには、セットに対して特定の操作を実行するために使用できるメソッドがいくつかあります。これらの方法は次のとおりです。
1) 追加()
add() メソッドは、セットに新しい値を挿入します。このメソッドは、挿入要素の存在に応じて true と false を返します。要素がセット内にすでに存在する場合は false を返し、セット内に存在しない場合は true を返します。
構文:
boolean add(type element).
SetExample3.java
import java.io.*; import java.util.*; public class addMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(11); data.add(61); data.add(51); System.out.println('data: ' + data); } }
出力:
2) addAll()
addAll() メソッドは、指定されたコレクションのすべての要素をセットに追加します。
構文:
boolean addAll(Collection data)
SetExample4.java
import java.io.*; import java.util.*; class addAllMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); System.out.println('Set: ' + data); ArrayList newData = new ArrayList(); newData.add(91); newData.add(71); newData.add(81); data.addAll(newData); System.out.println('Set: ' + data); } }
出力:
3) クリア()
このメソッドはセットからすべての要素を削除します。セットの参照は削除されません。セットの要素のみが削除されます。
構文:
void clear()
SetExample5.java
import java.io.*; import java.util.*; public class clearMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); System.out.println('Set: ' + data); data.clear(); System.out.println('The final set: ' + data); } }
出力:
4) を含む()
contains() メソッドは、セット内の要素の存在を知るために使用されます。戻り値は、要素の存在に応じて true または false になります。
構文:
boolean contains(Object element)
SetExample6.java
import java.io.*; import java.util.*; class containsMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(51); data.add(11); data.add(81); System.out.println('Set: ' + data); System.out.println('Does the Set contains '91'?' + data.contains(91)); System.out.println('Does the Set contains 'javaTpoint'? ' + data.contains('4')); System.out.println('Does the Set contains '51'? ' + data.contains(51)); } }
出力:
5) containsAll()
このメソッドは、コレクションのすべての要素が既存のセットで使用できるかどうかを確認するために使用されます。コレクションのすべての要素がセット内に存在する場合は true を返し、既存のセットに要素の 1 つが欠落している場合でも false を返します。
構文:
public boolean containsAll(Collection data)
SetExample7.java
import java.io.*; import java.util.*; class containsAllMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(51); data.add(11); data.add(81); System.out.println('data: ' + data); Set newData = new LinkedHashSet(); newData.add(31); newData.add(21); newData.add(41); System.out.println(' Does data contains newData?: '+ data.containsAll(newData)); } }
出力:
6) ハッシュコード()
このメソッドは、セットの現在のインスタンスのハッシュ コード値を取得するために使用されます。整数型のハッシュコード値を返します。
構文:
public int hashCode()
SetExample8.java
import java.io.*; import java.util.*; class hashCodeMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(51); data.add(11); data.add(81); System.out.println('data: ' + data); System.out.println(' The hash code value of set is:'+ data.hashCode()); } }
出力:
7) isEmpty()
isEmpty() メソッドは、 set が空であることを識別するために使用されます。セットが空の場合は true を返し、セットが空でない場合は false を返します。
構文:
boolean isEmpty()
SetExample9.java
import java.io.*; import java.util.*; class isEmptyMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(51); data.add(11); data.add(81); System.out.println('data: ' + data); System.out.println(' Is data empty?: '+ data.isEmpty()); } }
出力:
8) イテレータ()
iterator() メソッドは、セットの反復子を見つけるために使用されます。イテレータは要素を 1 つずつ取得するために使用されます。
構文:
Iterator iterate_value = set1.iterator();
SetExample10.java
import java.io.*; import java.util.*; class iteratorMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(51); data.add(11); data.add(81); System.out.println('data: ' + data); Iterator newData = data.iterator(); System.out.println('The NewData values are: '); while (newData.hasNext()) { System.out.println(newData.next()); } } }
出力:
9) 削除()
このメソッドは、指定された要素を Set から削除するために使用されます。その戻り値は、要素の可用性によって異なります。要素がセット内で使用可能な場合は true を返し、セット内で使用できない場合は false を返します。
構文:
boolean remove(Object O)
SetExample11.java
import java.io.*; import java.util.*; class removeMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(51); data.add(11); data.add(81); System.out.println('data: ' + data); data.remove(81); data.remove(21); data.remove(11); System.out.println('data after removing elements: ' + data); } }
出力:
11) すべて削除()
このメソッドは、指定されたコレクションから既存のセットのすべての要素を削除します。
構文:
public boolean removeAll(Collection data)
SetExample12.java
import java.io.*; import java.util.*; class removeAllMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(91); data.add(71); data.add(81); System.out.println('data: ' + data); ArrayList newData = new ArrayList(); newData.add(91); newData.add(71); newData.add(81); System.out.println('NewData: ' + newData); data.removeAll(newData); System.out.println('data after removing Newdata elements : ' + data); } }
出力:
11) 保持すべて()
このメソッドは、指定されたコレクションで指定されたセットのすべての要素を保持します。
構文:
public boolean retainAll(Collection data)
SetExample13.java
import java.io.*; import java.util.*; class retainAllMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(91); data.add(71); data.add(81); System.out.println('data: ' + data); ArrayList newData = new ArrayList(); newData.add(91); newData.add(71); newData.add(81); System.out.println('newData: ' + newData); data.retainAll(newData); System.out.println('data after retaining newdata elements : ' + data); } }
出力:
12) サイズ()
このメソッドはセットのサイズを返します。
構文:
int size()
SetExample14.java
Cで文字列を反転する
import java.io.*; import java.util.*; class sizeMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(91); data.add(71); data.add(81); System.out.println('data: ' + data); System.out.println('size of the data is : ' + data.size()); } }
出力:
13) すべて削除()
このメソッドは、セットの同じ要素を持つ配列を作成するために使用されます。
構文:
Object[] toArray()
SetExample15.java
import java.io.*; import java.util.*; class toArrayMethod { public static void main(String args[]) { Set data = new LinkedHashSet(); data.add(31); data.add(21); data.add(41); data.add(91); data.add(71); data.add(81); System.out.println('data: ' + data); Object[] array_data = data.toArray(); System.out.println('The array is:'); for (int i = 0; i <array_data.length; i++) system.out.println(array_data[i]); } < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/81/set-java-16.webp" alt="Set in Java"> <hr></array_data.length;>