Пример Јава скупа



Јава Јава Сет Сет

Интерфејс Јава Сет је неуређена колекција елемената који не садрже дуплиране елементе. Сет интерфејс пружа карактеристике математичког скупа у јави. У овом упутству ћемо покрити различите примере Јава скупа метода Јава скупа и њихову употребу.

Карактеристике Сет интерфејса

  • Садржи јединствене елементе што значи да не дозвољава дуплиране вредности
  • Јава Сет нема редослед у складиштењу елемената
  • Нема ниједан индекс и стога не можемо приступити ниједном елементу на основу позиције.
  • Будући да је то интерфејс, можемо га имплементирати помоћу било које класе имплементације Сет
  • Проширује интерфејс за прикупљање

Разлика између Јава скупа и Јава листе

  • Јава Сет је неуређена колекција елемената док Листа је уређена колекција елемената.
  • Сет нема приступ заснован на индексу, али Лист има индекс помоћу којег можемо приступити елементима.
  • У Постави не можемо да додамо дупле вредности, док Листа дозвољава додавање двоструких вредности.

Сет Имплементатион

Од Јава Сет је интерфејс, не можемо директно створити објекат. Отуда морамо да применимо једну од класа попут ХасхСет, ТрееСет, ЛинкедХасхСет или ЕнумСет. Свака постављена класа понаша се на другачији начин како је објашњено у наставку:

  • ХасхСет - Не постоји редослед или редослед елемената током проласка кроз сет.
  • ТрееСет - Очува редослед елемената заједно са сортирањем
  • ЛинкедХасхСет - Очува редослед елемената исти као уметање

Постави Јава

Пример Јава скупа

Да бисмо имплементирали постављени интерфејс, морамо да увозимо пакет јава.утил. *, А други увозе појединачне пакете класа одвојено.

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();

  }

}

Такође можемо створити генеричке скупове као што је приказано доле. Овде смо навели ХасхСет као Стринг тип и ТрееСет као Интегер тип. Стога ови објекти прихватају вредности само ових специфичних типова.

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>();
  }
}

Јава Сет методе

Сет укључује све методе интерфејса за прикупљање заједно са доле поменутим методама.

МетодописПараметар
боолеан адд (Стринг е)Додаје елемент скупу ако већ не постоји. Враћа фалсе ако елемент већ постоји у скупу и игнорише позиве - елемент који се додаје у скуп
боолеан аддАлл (Цоллецтионц)Додаје све елементе у колекцији скупу ако их немац - колекција елемената који се додају
воид цлеар ()Уклања све елементе из скупа и скуп ће бити празан
боолеан садржи (објекат о)Проверава да ли скуп садржи елемент и враћа труе ако је присутано - елемент који се тражи у скупу
боолеан цонтаинсАлл (Збирка ц)Проверава да ли је колекција подскуп скупа и враћа вредност труе ако је присутнав - колекција елемената
боолеан једнако (Објект о)Проверава једнакост скупа са прослеђеним објектом. Враћа тачно ако су оба скупа и садрже исте елементе и величинуо - објекат који треба упоредити
боолеан исЕмпти ()Проверава да ли је скуп празан или не и враћа вредност труе ако је празан
Итератор итератор ()Враћа итератор за кретање кроз елементе у скупу
логичко уклањање (објекат о)Уклања одређени елемент из скупа и враћа труе ако је елемент уклоњено - елемент који треба уклонити
боолеан ремовеАлл (Колекција ц)Уклања све елементе из колекције из скупа ако су присутнив - колекција елемената који се уклањају
боолеан ретаинАлл (Колекција ц)У скупу задржава само елементе у колекцији, што значи да уклања све остале елементе који нису део колекцијев - колекција елемената који се задржавају
инт величина ()Приказује број елемената у скупу
СплитИтератор сплититератор ()Ствара подељени итератор преко елемената у скупу
Објецт [] тоАрраи ()Претвара све елементе у скупу у низ
Стринг тоСтринг ()Враћа низ података о објекту

Постави изузетке

Јава сет баца доњи изузеци

  • УнсуппортедОператионЕкцептион
  • НуллПоинтерЕкцептион
  • ЦлассЦастЕкцептион
  • ИллегалАргументЕкцептион

Додавање и уклањање елемената из скупа

У примеру испод, прво креирамо ХасхСет и додамо 2 елемента. Затим креирамо још један ХасхСет и додамо још 2 елемента. Затим се додаје као збирка првом скупу.

У примеру уклањања прво уклањамо елемент из првог скупа, а затим уклањамо све елементе из другог скупа.

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]

Сортирање елемената помоћу ТрееСет-а

Овде смо прогласили низ целих бројева, а затим додали елементе у ХасхСет користећи фор петљу. У излазу можете видети да дуплирани елемент „12“ није укључен, што је постављена карактеристика. Елементе ХасхСет-а можемо сортирати помоћу ТрееСет-а као што је приказано у доњем примеру.

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]

Претвори Јава Сет у Арраи

Сет можемо претворити у поредак елемената који користе методу тоАрраи како је описано у наставку.

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

Пример Јава програма Сет операција (Унија, пресек и разлика)

У овом примеру смо креирали 2 целобројна скупа. Да бисмо извршили обједињавање 2 скупа, користимо методу аддАлл која ће додати све јединствене елементе из оба скупа. За пресецање користимо методу ретаинАлл да задржимо само заједничке елементе између скупова. Да бисмо пронашли разлику између 2 скупа, користимо методу ремовеАлл која ће уклонити све елементе у скупу2 заједно са уобичајеним елементима у скупу1.

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]

Zakljucak

У овом упутству сте научили о Постављању на Јави и како створити и користити сет за различите манипулације.

Препорука