Java жиынтығы



Java Java жиынтығы жиынтық

Java Set интерфейсі - бұл қайталанатын элементтері жоқ элементтердің реттелмеген жиынтығы. Set Interface java-да математикалық жиынтықтың мүмкіндіктерін ұсынады. Бұл оқулықта біз Java жиынтығы әдістерінің әр түрлі Java жиынтығының мысалдары мен оларды қолдануды қарастырамыз.

Set интерфейсінің ерекшеліктері

  • Онда қайталанатын мәндерге жол бермейтін бірегей элементтер бар
  • Java Set-те элементтерді сақтау тәртібі жоқ
  • Оның индексі жоқ, сондықтан біз позицияға байланысты кез-келген элементтерге қол жеткізе алмаймыз.
  • Бұл интерфейс болғандықтан, біз Set іске асыру кластарының кез келгенін қолдана отырып іске асыра аламыз
  • Коллекция интерфейсін кеңейтеді

Java жиынтығы мен Java тізімі арасындағы айырмашылық

  • Java Set - бұл реттелмеген элементтер жиынтығы тізім элементтердің реттелген жиынтығы болып табылады.
  • Жиынның индекске негізделген қатынасы жоқ, бірақ тізімде элементтерге қол жеткізуге болатын индекс бар.
  • Орнату кезінде біз қайталанатын мәндерді қоса алмаймыз, ал Тізім қайталанатын мәндерді қосуға мүмкіндік береді.

Іске асыру

содан бері Java Set - бұл интерфейс, біз тікелей объект жасай алмаймыз. Сондықтан біз HashSet, TreeSet, LinkedHashSet немесе EnumSet сияқты кластардың бірін енгізуіміз керек. Әрбір жиынтық сынып өзін төмендегідей қарастырады:

  • HashSet - жиынтықты айналып өту кезінде элементтердің реті немесе реттілігі жоқ.
  • TreeSet - Ол сұрыптаумен бірге элементтердің ретін сақтайды
  • LinkedHashSet - Бұл элементтердің орналасу тәртібін кірістіру сияқты сақтайды

Java орнатыңыз

Java жиынтығы

Орнатылған интерфейсті іске асыру үшін біз 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-ті String типі ретінде және TreeSet-ті Integer типі ретінде анықтадық. Демек, бұл объектілер тек осы типтердің мәндерін қабылдайды.

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 әдістері

Жиынтықта төменде көрсетілген әдістермен бірге Collection интерфейсінің барлық әдістері бар.

әдіссипаттамасыпараметр
логикалық қосу (String e)Егер ол жоқ болса, жиынға элемент қосады. Егер элемент жиынтықта бұрыннан бар болса және ол қоңырауды елемейтін болса, ол жалған болып шығадыe - жиынға қосылатын элемент
логикалық addAll (Collectionc)Егер ол жоқ болса, жинақтағы барлық элементтерді жиынтыққа қосадыв - қосылатын элементтер жиынтығы
жарамсыз ()Жиыннан барлық элементтерді жояды және жиын бос болады
логикалық құрамында (Object o) барЖиын элементтің бар-жоғын тексереді, егер бар болса, шын мәнін қайтарадыo - жиынтықта іздеуге болатын элемент
логикалық құрамыAll (жиынтық c)Жиын жиынның жиынтығы екенін тексереді, егер бар болса, шын мәнін қайтарадыв - элементтер жиынтығы
логикалық тең (Object o)Берілген объектімен жиынтықтың теңдігін тексереді. Егер ол екеуі де жиын болса және бірдей элементтер мен өлшем болса, ол шындыққа айналадыo - салыстыру қажет объект
логикалық isEmpty ()Жиынның бос немесе жоқ екенін тексеріп, бос болса, шын мәнін береді
Итератор итераторы ()Жиын элементтерінде шарлау үшін итераторды қайтарады
логикалық жою (Object o)Жиынтықтан нақты элементті алып тастайды және егер элемент жойылса, true мәнін қайтарадыo - жойылатын элемент
логикалық жоюAll (c жиынтығы)Егер бар болса, жиынтықтағы барлық элементтерді жинақтан алып тастайдыв - жойылатын элементтер жиынтығы
логикалық retainAll (c жинағы)Жинақта элементтердің элементтерін ғана сақтайды, яғни ол коллекцияға кірмейтін барлық элементтерді жоядыв - сақталатын элементтер жиынтығы
int өлшемі ()Жиындағы элементтер санын қайтарады
SplitIterator бөлгіш ()Жиын элементтеріндегі сплит итераторын жасайды
Нысан [] toArray ()Жиындағы барлық элементтерді массивке түрлендіреді
String toString ()Нысанның жолдық көрінісін қайтарады

Ерекшеліктер орнатыңыз

Java жиынтығы лақтырады төмендегі ерекшеліктер

  • ҚолданылмайтынOperationException
  • NullPointerException
  • ClassCastException
  • Заңсыз Аргументті алып тастау

Жиынға элементтерді қосу және жою

Төмендегі мысалда біз алдымен HashSet құрып, оған 2 элемент қосамыз. Содан кейін біз тағы бір HashSet құрып, тағы 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]

TreeSet көмегімен элементтерді сұрыптау

Мұнда біз бүтін сандар жиымын жарияладық, содан кейін элементтерді for цикл көмегімен HashSet-ке қостық. Шығарылымда «12» қайталанатын элементтің қосылмағанын көруге болады, бұл орнатылған функция. HashSet элементтерін TreeSet көмегімен төмендегі мысалда көрсетілгендей сұрыптай аламыз.

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 жиынның арасындағы айырмашылықты табу үшін set2-дегі барлық элементтерді және set1-дегі жалпы элементтерді алып тастайтын RemoveAll әдісін қолданамыз.

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-да орнату туралы және әртүрлі манипуляциялар үшін жиынтықты құру және пайдалану туралы білдіңіз.

анықтамалық