The комплект е интерфейс, наличен в java.util пакет. The комплект интерфейсът разширява интерфейса на колекцията. Неподредена колекция или списък, в който не са разрешени дубликати, се нарича a интерфейс за събиране . Интерфейсът на набора се използва за създаване на математическия набор. Интерфейсът на набора използва методите на интерфейса на колекцията, за да избегне вмъкването на едни и същи елементи. СортиранНабор и NavigableSet са два интерфейса, които разширяват изпълнението на комплекта.
В горната диаграма, NavigableSet и СортиранНабор са и двата интерфейса. The NavigableSet разширява 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); } }
Изход:
Забележка: В целия раздел компилирахме програмата с име на файл и стартирахме програмата с име на клас. Тъй като името на файла и името на класа са различни.
Операции в интерфейса на комплекта
В комплекта можем да извършваме всички основни математически операции като пресичане, обединение и разлика.
Да предположим, че имаме две множества, т.е. множество1 = [22, 45, 33, 66, 55, 34, 77] и множество2 = [33, 2, 83, 45, 3, 12, 55]. Можем да извършим следната операция на комплекта:
В комплект, добави Всички() методът се използва за извършване на обединението, retainAll() метод се използва за извършване на пресичането и премахнете всички() методът се използва за извършване на разлика. Нека вземем пример, за да разберем как тези методи се използват за извършване на операциите за пресичане, обединение и разлика.
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 от тип integer. След това създаваме два набора, т.е. set1 и set2 от тип integer. Преобразуваме масива в списък и добавяме елементите от масив A в set1 и елементите от масив B в set2.
За извършване на обединението създаваме нов комплект union_data със същия елемент от множеството1. След това извикваме метода addAll() на set и предаваме set2 като аргумент към него. Този метод ще добави всички тези елементи към union_data които не присъстват в него и дава обединението на двете множества.
За извършване на пресичането създаваме нов набор данни за_пресечка със същия елемент от множеството1. След това извикваме метода retainAll() на set и му предаваме set2 като аргумент. Този метод ще получи всички тези елементи от данни за_пресечка които присъстват в set2 и го съхраняват в intersection_data. Сега intersection_data съдържа стойността на intersect и на двата набора.
За изпълнение на разликата създаваме нов комплект разлика_данни със същия елемент от множеството1. След това извикваме метода removeAll() на set и предаваме set2 като аргумент към него. Този метод ще премахне всички тези елементи от разлика_данни които присъстват в набора2 и дава разликата на двата набора.
Задайте методи
Има няколко налични метода в интерфейса на набора, които можем да използваме, за да извършим определена операция върху нашите набори. Тези методи са както следва:
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() се използва, за да се знае наличието на елемент в набора. Неговата върната стойност е истина или невярно в зависимост от присъствието на елемента.
Синтаксис:
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) съдържа Всички()
Методът се използва за проверка дали всички елементи на колекцията са налични в съществуващия набор или не. Той връща true, ако всички елементи на колекцията присъстват в набора и връща 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) hashCode()
Методът се използва за извличане на стойността на хеш кода за текущия екземпляр на набора. Връща стойност на хеш кода от целочислен тип.
Синтаксис:
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() се използва за идентифициране на празнотата на набора. Връща 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() се използва за намиране на итератора на набора. Итераторът се използва за получаване на елемента един по един.
Синтаксис:
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) премахване ()
Методът се използва за премахване на определен елемент от набора. Неговата върната стойност зависи от наличността на елемента. Връща 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) retainAll()
Методът запазва всички елементи от набора, зададен в дадената колекция.
Синтаксис:
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
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;>