Java Set Example



Java Java Set коюлган

Java Set интерфейси - бул эч кандай кайталануучу элементтерди камтыбаган элементтердин иреттелбеген жыйнагы. Set Interface java математикалык топтомунун өзгөчөлүктөрүн камсыз кылат. Бул окуу куралы, биз Java топтомунун методдорунун жана аларды колдонуунун ар кандай Java топтомдорунун мисалдарын камтыйбыз.

Set интерфейсинин өзгөчөлүктөрү

  • Ал уникалдуу элементтерди камтыйт, бул кайталануучу маанилерге жол бербейт
  • Java Set элементтерди сактоодо эч кандай тартипке ээ эмес
  • Ал эч кандай индекске ээ эмес, ошондуктан биз позициянын негизинде эч кандай элементтерге кире албайбыз.
  • Бул интерфейс болгондуктан, аны Set ишке ашыруу класстарынын каалаганын колдонуп ишке ашыра алабыз
  • Collection интерфейсин кеңейтет

Java Set менен Java Listтин айырмасы

  • Java Set - бул элементтердин иреттелбеген жыйнагы тизме элементтердин иреттелген жыйнагы болуп саналат.
  • Топтомдун индекске негизделген мүмкүнчүлүгү жок, бирок Тизмеде биз элементтерге жете турган индекс бар.
  • Топтомдо биз кайталануучу баалуулуктарды кошо албайбыз, ал эми Тизме кайталанма баалуулуктарды кошууга мүмкүнчүлүк берет.

Ишке ашыруу

бери Java Set - бул интерфейс, биз түздөн-түз объект түзө албайбыз. Демек, биз HashSet, TreeSet, LinkedHashSet же EnumSet сыяктуу класстардын бирин ишке ашырышыбыз керек. Ар бир белгиленген класс өзүн төмөндө талкуулагандай алып жүрөт:

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

Java орнотуу

Java Set Example

Орнотулган интерфейсти ишке ашыруу үчүн 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)Эгерде ал буга чейин жок болсо, топтомго элемент кошот. Эгер ал топтомдо мурунтан эле бар болсо жана ал чалууга көңүл бурбай калса, ал "false" маанисин беретe - топтомго кошула турган элемент
логикалык addAll (Collectionc)Эгерде ал жок болсо, жыйнактагы бардык элементтерди топтомго кошотв - кошула турган элементтердин жыйнагы
void clear ()Бардык элементтерди топтомдон алып салат жана топтом бош калат
логикалык (Object o) камтыйтТоптомдо элемент бар-жогун текшерип, эгер бар болсо, чыныгы мааниге ээ болотo - топтомдо изделүүчү элемент
логикалык камтылганAll (Жыйнак c)Жыйнак топтомдун ички бөлүгү экендигин текшерип, эгер бар болсо, чыныгы маанисин беретв - элементтердин жыйындысы
логикалык барабар (Object o)Берилген объект менен топтомдун теңдигин текшерет. Бул экөө тең топтом болсо жана бирдей элементтерди жана өлчөмдү камтыса, ал чыныгы мааниге ээo - салыштыруу керек болгон объект
логикалык isEmpty ()Топтомдун бош же бош эместигин текшерип, бош болсо чыныгы маанисин берет
Итератор итератору ()Топтомдогу элементтер боюнча чабыттоо үчүн кайталоочу кайтып келет
логикалык алып салуу (Object o)Белгилүү бир элементти топтомдон алып салат жана эгер элемент алынып салынса, чыныгы маанисин беретo - алынып салынуучу элемент
логикалык RemoveAll (Collection c)Эгерде бар болсо, жыйнактагы бардык элементтерди топтомдон алып салатв - алынып салынуучу элементтердин жыйнагы
boolean retainAll (Collection c)Топтомдогу элементтерди гана сактап калат, демек, ал коллекцияга кирбеген бардык элементтерди алып салатв - сакталып кала турган элементтердин жыйнагы
int size ()Топтомдогу элементтердин санын кайтарып берет
SplitIterator splititerator ()Топтомдогу элементтердин үстүнөн сплит-итератор түзөт
Object [] toArray ()Топтомдогу бардык элементтерди массивге которот
Сап 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 loop үчүн 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 Setти массивге которуу

Биз комплектти анга айланта алабыз согуштук тизме төмөндө сүрөттөлгөндөй 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 программасынын мисалы (Union, кесилиш жана айырма)

Бул мисалда биз 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 орнотуу жана ар кандай манипуляциялар үчүн топтомду түзүү жана колдонуу жөнүндө билдиңиз.

шилтеме