Java- ի օրինակ  



Java Java հավաքածու հավաքածու

Java Set ինտերֆեյսը տարրերի անսովոր հավաքածու է, որոնք չեն պարունակում որևէ կրկնօրինակ տարր: Սահմանված միջերեսը տալիս է java լեզվով մաթեմատիկական բազմության առանձնահատկությունները: Այս ձեռնարկում մենք կներառենք Java հավաքածուի մեթոդների և դրանց օգտագործման տարբեր Java հավաքածուների օրինակներ:

Սահմանել ինտերֆեյսի առանձնահատկությունները  

  • Այն պարունակում է եզակի տարրեր, ինչը նշանակում է, որ թույլ չի տալիս կրկնօրինակ արժեքներ
  • Java Set- ը տարրեր պահելու կարգ չունի
  • Այն չունի որևէ ինդեքս, ուստի դիրքի հիման վրա մենք չենք կարող մուտք գործել որևէ տարր:
  • Քանի որ դա ինտերֆեյս է, մենք կարող ենք այն իրականացնել ՝ օգտագործելով Set իրականացման դասերից որևէ մեկը
  • Ընդլայնում է հավաքածուի միջերեսը

Java- ի և Java ցուցակի միջև տարբերությունը  

  • Java Set- ը տարրերի անսովոր հավաքածու է, մինչդեռ Ցուցակ տարրերի պատվիրված հավաքածու է:
  • Սեթը չունի ինդեքսի վրա հիմնված մուտք, բայց Listուցակն ունի ինդեքս, որով կարող ենք մուտք գործել տարրեր:
  • Սահմանել, մենք չենք կարող ավելացնել կրկնօրինակ արժեքներ, իսկ Listուցակը թույլ է տալիս ավելացնել կրկնօրինակ արժեքներ:

Սահմանել իրականացում  

Հետո Java Set- ը ինտերֆեյս է, մենք չենք կարող ուղղակիորեն օբյեկտ ստեղծել: Ուստի մենք պետք է իրականացնենք դասերից մեկը ՝ HashSet, TreeSet, LinkedHashSet կամ EnumSet: Կոմպլեկտների յուրաքանչյուր դաս վարվում է տարբեր ձևով, ինչպես քննարկվում է ստորև:

  • HashSet - Հավաքածուի միջով անցնելիս չկա տարրերի հերթականություն կամ հաջորդականություն:
  • TreeSet - Այն պահպանում է տարրերի դասավորությունը տեսակավորմանը զուգահեռ
  • LinkedHashSet - Այն պահպանում է տարրերի հերթականությունը նույնը, ինչ տեղադրումը
Տես նաեւ,
Scanner Class Java և ներմուծել Scanner Java

Սահմանեք 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- ը որպես տողի տեսակ, իսկ TreeSet- ը ՝ որպես ամբողջ թիվ: Հետևաբար այս օբյեկտներն ընդունում են միայն այս հատուկ տիպերի արժեքները:

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 մեթոդներ  

Հավաքածուն ներառում է Հավաքածուի ինտերֆեյսի բոլոր մեթոդները, ինչպես նաև ստորև նշված մեթոդները:

ՄեթոդՆկարագրությունParameter
բուլյան ավելացնել (լարային ե)Հավաքածուին ավելացնում է մի տարր, եթե այն արդեն գոյություն չունի: Այն կեղծ է վերադարձնում, եթե էլեմենտն արդեն առկա է հավաքածուում և անտեսում է զանգըե - հավաքածուն ավելացվող տարրը
boolean addAll (Collectionc)Եթե ​​այն չի ներկայացնում, հավաքածուի բոլոր տարրերն ավելացնում է հավաքածուինգ - ավելացվող տարրերի հավաքածու
անվավեր պարզ ()Հեռացնում է հավաքածուից բոլոր տարրերը, և հավաքածուն դատարկ կլինի
բուլյան պարունակություն (օբյեկտ o)Ստուգում է, արդյոք հավաքածուն պարունակում է տարրը, և եթե առկա է, վերադառնում է trueo - հավաքածուի մեջ որոնվող տարրը
բուլյան պարունակություն Բոլորը (հավաքածու գ)Ստուգում է, արդյոք հավաքածուն բազմության ենթաբազմություն է, և եթե առկա է, վերադառնում է իրականգ - տարրերի հավաքածու
բուլյան հավասար է (օբյեկտ o)Ստուգում է հավաքածուի հավասարությունը անցած օբյեկտի հետ: Այն վերադառնում է ճիշտ, եթե երկուսն էլ բազմություն են և պարունակում են նույն տարրերն ու չափըo - օբյեկտ, որը պետք է համեմատել
բուլյան is դատարկ ()Ստուգում է, արդյոք բազմությունը դատարկ է, թե ոչ, և վերադառնում է true, եթե դատարկ է
Iterator iterator ()Վերադարձնում է կրկնիչը ՝ հավաքածուի տարրերի միջով նավարկելու համար
բուլյան հեռացում (օբյեկտ o)Հեռացնում է հատուկ տարրը հավաքածուից և վերադառնում է true, եթե տարրը հեռացվում էo - հեռացվող տարրը
boolean removeAll (հավաքածու c)Եթե ​​առկա է, հավաքածուից հեռացնում է հավաքածուի բոլոր տարրերըգ - հեռացվող տարրերի հավաքածու
boolean retainAll (հավաքածու c)Հավաքածուի մեջ պահում է միայն հավաքածուի տարրերը, ինչը նշանակում է, որ այն հեռացնում է բոլոր մյուս տարրերը, որոնք հավաքածուի մաս չեն կազմումգ - պահվող տարրերի հավաքածու
int չափը ()Վերադարձնում է հավաքածուի տարրերի քանակը
SplitIterator splititerator ()Ստեղծում է պառակտված կրկնիչ հավաքածուի տարրերի վրա
Օբյեկտ [] toArray ()Սահմանում է հավաքածուի բոլոր տարրերը զանգվածի
String toString ()Վերադարձնում է օբյեկտի լարային ներկայացումը
Տես նաեւ,
DataInputStream- ը Java- ում

Սահմանեք բացառություններ  

Java հավաքածուի նետումները ստորև բերված բացառությունները

  • Չաջակցվող գործողություն Բացառություն
  • NullPointerException
  • ClassCastException
  • Բացառիկ ապօրինի փաստարկ

Ավելացնել և հեռացնել տարրերից մի շարք  

Ստորև ներկայացված օրինակում մենք նախ ստեղծում ենք HashSet և ավելացնում 2 տարր: Դրանից հետո մենք ստեղծում ենք մեկ այլ HashSet և ավելացնում եւս 2 տարր: Այնուհետև սա ավելացվում է որպես առաջին հավաքածուի հավաքածու:

Հեռացնել օրինակը, մենք առաջին հերթին հեռացնում ենք տարրը 1-ին հավաքածուից, ապա հեռացնում բոլոր տարրերը երկրորդ շարքից:

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- ի միջոցով տարրերի տեսակավորում  

Այստեղ մենք հայտարարեցինք ամբողջ թվերի զանգված և այնուհետև տարրերը ավելացրեցինք 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- ի հավաքածուն զանգվածում  

Մենք կարող ենք բազմությունը վերածել an- ի դասավորություն ստորև նկարագրված, 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

Սահմանել գործառնությունների Java ծրագրի օրինակ (միություն, խաչմերուկ և տարբերություն)  

Այս օրինակում մենք ստեղծել ենք 2 ամբողջ ամբողջություն: 2 հավաքածուի միավորում կատարելու համար մենք օգտագործում ենք addAll մեթոդը, որը երկու հավաքածուներից կավելացնի բոլոր եզակի տարրերը: Խաչմերուկի համար մենք օգտագործում ենք retainAll մեթոդը ՝ հավաքածուների միջև պահպանելու միայն ընդհանուր տարրերը: 2 հավաքածուի տարբերությունը գտնելու համար մենք օգտագործում ենք removeAll մեթոդը, որը կհեռացնի set2- ի բոլոր տարրերը `set1- ի ընդհանուր տարրերի հետ միասին:

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- ի Set- ի և տարբեր մանիպուլյացիաների համար հավաքածու ստեղծելու և օգտագործելու մասին:

Տես նաեւ,
Թվարկումները Java- ում

Մանրամասն