Java Məsələn Nümunə


Java Java Dəsti SetBaxılıb 34

Java Set interfeysi, təkrarlanan elementləri olmayan sıralanmamış elementlər toplusudur. Set Interface javada riyazi Dəstin xüsusiyyətlərini təqdim edir. Bu təlimatda, Java dəsti metodlarına və istifadəsinə dair müxtəlif Java dəsti nümunələrini əhatə edəcəyik.

Set interfeysinin xüsusiyyətləri

  • Təkrarlanan dəyərlərə icazə vermədiyi mənasını verən unikal elementlərdən ibarətdir
  • Java Set-in elementlərin saxlanmasında heç bir qaydası yoxdur
  • Heç bir indeksə sahib deyil və bu səbəbdən mövqeyə görə hər hansı bir elementə daxil ola bilmərik.
  • Bir interfeys olduğu üçün Set tətbiq siniflərindən hər hansı birini istifadə edərək tətbiq edə bilərik
  • Kolleksiya interfeysini genişləndirir

Java Set və Java List arasındakı fərq

  • Java Dəsti, sıralanmamış elementlər toplusudur siyahı elementlərin sifarişli bir toplusudur.
  • Dəstin indeks əsaslı girişi yoxdur, ancaq Siyahıda elementlərə daxil ola biləcəyimiz bir indeks var.
  • Dəstdə, təkrarlanan dəyərlər əlavə edə bilmərik, Siyahı isə təkrarlanan dəyərlər əlavə etməyə imkan verir.

Tətbiqi təyin edin

Etibarən Java Set bir interfeysdir, birbaşa bir obyekt yarada bilmirik. Bu səbəbdən HashSet, TreeSet, LinkedHashSet və ya EnumSet kimi siniflərdən birini tətbiq etməliyik. Hər bir set sinif aşağıda müzakirə edildiyi kimi fərqli bir şəkildə davranır:

  • HashSet - Dəstdən keçərkən heç bir sıra və ya element ardıcıllığı yoxdur.
  • TreeSet - Sıralama ilə yanaşı elementlərin sırasını qoruyur
  • LinkedHashSet - Elementlərin sırasını yerləşdirmə ilə eyni şəkildə qoruyur

Java qurunPin

Java Məsələn Nümunə

Müəyyən edilmiş interfeysi tətbiq etmək üçün java.util idxal etməliyik. * Başqa paket fərdi sinif paketlərini ayrı-ayrı idxal edin.

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

  }

}

Aşağıda göstərildiyi kimi ümumi dəstləri də yarada bilərik. Burada HashSet'i String növü və TreeSet'i Tamsayı növü olaraq təyin etdik. Beləliklə, bu obyektlər yalnız bu tip növlərin dəyərlərini qəbul edirlər.

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

Java Set metodları

Dəstə aşağıda göstərilən üsullarla yanaşı bütün Kolleksiya interfeysi metodları daxildir.

ÜsultəsvirParametr
boolean əlavə et (String e)Zatən mövcud deyilsə, çoxluğa bir element əlavə edir. Element artıq dəstdə varsa və zəngə məhəl qoymazsa, false qaytarıre - dəstə əlavə ediləcək element
boolean addAll (Collectionc)Təqdim etmədikdə kolleksiyadakı bütün elementləri dəstə əlavə edirc - əlavə ediləcək elementlər toplusu
boşluq təmiz ()Bütün elementləri dəstdən çıxarır və dəst boş olacaq
boolean tərkibində (Object o) varÇoxluqda elementin olub-olmadığını yoxlayır və mövcud olduqda doğruduro - çoxluqda axtarılacaq element
booleanAll (Collection c)Kolleksiyanın dəstin bir alt qrupu olub olmadığını yoxlayır və mövcud olduqda doğrudurc - elementlərin toplanması
boolean bərabərdir (Object o)Keçən obyekt ilə çoxluğun bərabərliyini yoxlayır. Hər ikisi də dəstdirsə və eyni elementləri və ölçünü ehtiva edərsə, doğruduro - müqayisə edilməsi lazım olan obyekt
boolean isEmpty ()Çoxluğun boş olub olmadığını yoxlayır və boş olduqda doğru qayıdır
Təkrarlayıcı iterator ()Dəstdəki elementlər arasında gezinmek üçün bir iterator qaytarır
boolean çıxarın (Object o)Müəyyən elementi çoxluqdan silər və element silinsə doğru qaytararo - çıxarılacaq element
boolean removeAll (Collection c)Varsa kolleksiyadakı bütün elementləri dəstdən silərc - silinəcək elementlərin toplanması
boolean retainAll (Kolleksiya c)Yalnız kolleksiyadakı elementləri dəstdə saxlayır, yəni kolleksiyaya daxil olmayan bütün elementləri kənarlaşdırırc - saxlanılacaq elementlərin toplanması
int ölçüsü ()Dəstdəki elementlərin sayını qaytarır
SplitIterator bölücü ()Dəstdəki elementlər üzərində bölünmüş iterator yaradır
Obyekt [] toArray ()Dəstdəki bütün elementləri massivə çevirir
String toString ()Obyektin simli nümayəndəliyini qaytarır

İstisnalar təyin edin

Java dəsti atır aşağıdakı istisnalar

  • DəstəklənməyənOperationException
  • NullPointerException
  • ClassCastException
  • Qeyri-qanuni sənəd

Bir dəstdən elementləri əlavə edin və silin

Aşağıdakı nümunədə əvvəlcə HashSet yaradırıq və 2 element əlavə edirik. Sonra başqa bir HashSet yaradırıq və daha 2 element əlavə edirik. Daha sonra ilk dəstə kolleksiya kimi əlavə olunur.

Məsələn çıxartmaq üçün əvvəlcə bir elementi 1-ci dəstdən çıxarırıq və sonra ikinci elementdən bütün elementləri çıxarırıq.

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 istifadə edərək elementləri çeşidləmək

Burada bir ədəd tam ədəd elan etdik və sonra elementləri loop formasını istifadə edərək HashSet-ə əlavə etdik. Çıxışda, "12" elementinin yinələnmə xüsusiyyətinin daxil edilmədiyini görə bilərsiniz. Aşağıdakı nümunədə göründüyü kimi TreeSet istifadə edərək HashSet elementlərini sıralaya bilərik.

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 Dəstini Array-a çevirin

Dəsti birə çevirə bilərik array aşağıda göstərildiyi kimi toArray metodunu istifadə edən elementlərin.

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 əməliyyatları nümunəsi Java proqramı (Birlik, kəsişmə və fərq)

Bu nümunədə 2 tamsayı dəsti yaratdıq. 2 dəstdən ibarət birliyi yerinə yetirmək üçün hər iki dəstdən bütün unikal elementləri əlavə edəcək addAll metodundan istifadə edirik. Kəsişmə üçün dəstlər arasında yalnız ümumi elementləri qorumaq üçün retainAll metodundan istifadə edirik. 2 dəst arasındakı fərqi tapmaq üçün set2-dəki bütün elementləri və set1-dəki ümumi elementləri siləcək olan RemoveAll metodundan istifadə edirik.

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]

nəticə

Bu təlimatda Java-da Set və müxtəlif manipulyasiyalar üçün setin yaradılması və istifadəsi haqqında məlumat əldə etdiniz.

arayış

Şərh yaz

Translate »
1