የጃቫ ምሳሌ  



ጃቫ የጃቫ ስብስብ አዘጋጅ

የጃቫ ስብስብ በይነገጽ ምንም የተባዙ አባሎችን የማይይዝ ያልተመጣጠነ የንጥል ስብስብ ነው። የ Set በይነገጽ በጃቫ ውስጥ የሂሳብ ስብስብ ባህሪያትን ይሰጣል። በዚህ መማሪያ ውስጥ የተለያዩ የጃቫ ስብስብ ምሳሌዎችን የጃቫ ስብስብ ዘዴዎችን እና አጠቃቀማቸውን እንመለከታለን ፡፡

የ Set በይነገጽ ገፅታዎች  

  • ልዩ አባሎችን ይ containsል ይህም ማለት የተባዙ እሴቶችን አይፈቅድም ማለት ነው
  • የጃቫ ስብስብ ንጥረ ነገሮችን ለማከማቸት ምንም ዓይነት ትዕዛዝ የለውም
  • እሱ ምንም መረጃ ጠቋሚ የለውም ስለሆነም በአቀማመጥ ላይ ተመስርተን ማንኛውንም አካላት መድረስ አንችልም።
  • በይነገጽ ስለሆነ ማንኛውንም የ Set ትግበራ ክፍሎችን በመጠቀም ተግባራዊ ማድረግ እንችላለን
  • የስብስብ በይነገጽን ያስረዝማል

በጃቫ ስብስብ እና በጃቫ ዝርዝር መካከል ያለው ልዩነት  

  • ጃቫ ስብስብ ያልተስተካከለ የንጥረ ነገሮች ስብስብ ሲሆን ግን ዝርዝር የታዘዘ አካላት ስብስብ ነው
  • ሴቲቱ በመረጃ ጠቋሚ ላይ የተመሠረተ መዳረሻ የለውም ነገር ግን ዝርዝር አባላትን የምንደርስበት መረጃ ጠቋሚ አለው ፡፡
  • በ Set ውስጥ ፣ የተባዙ እሴቶችን ማከል ሲፈቅድ የተባዙ እሴቶችን ማከል አንችልም።

ትግበራ ያዘጋጁ  

ጀምሮ ጃቫ ስብስብ በይነገጽ ነው፣ በቀጥታ አንድ ነገር መፍጠር አንችልም። ስለሆነም እንደ ‹HashSet› ፣ TreeSet ፣ LinkedHashSet ፣ ወይም EnumSet ካሉ አንዱን ክፍል መተግበር ያስፈልገናል ፡፡ እያንዳንዱ የስብስብ ክፍል ከዚህ በታች እንደተመለከተው በተለየ መንገድ ይሠራል ፡፡

  • HashSet - በስብስቡ ውስጥ በሚያልፉበት ጊዜ ምንም ንጥረ ነገሮች ቅደም ተከተል ወይም ቅደም ተከተል የለም።
  • TreeSet - ከመደርደር ጋር የነገሮችን ቅደም ተከተል ይጠብቃል
  • LinkedHashSet - ልክ እንደ ማስገባት ተመሳሳይ ንጥረ ነገሮችን ቅደም ተከተል ይጠብቃል
ተመልከት
የጃቫ ስካነር

ጃቫን ያዘጋጁጭንቅላታም መያያዣ መርፌ

የጃቫ ምሳሌ  

የተቀመጠውን በይነገጽ ለመተግበር የ 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 type እና 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>();
  }
}

የጃቫ ስብስብ ዘዴዎች  

Set ከዚህ በታች ከተዘረዘሩት ዘዴዎች ጋር ሁሉንም የስብስብ በይነገጽ ዘዴዎችን ያካትታል።

መንገድመግለጫየልኬት
ቡሊያን አክል (String e)አንድ ስብስብ ቀደም ሲል ከሌለ አንድ ስብስብ ያክላል። በስብስቡ ውስጥ አባል ካለ እና ጥሪውን ችላ ካላለ ሐሰቱን ይመልሳልሠ - ወደ ስብስቡ የሚታከል ንጥረ ነገር
ቡሊያን አደም ሁሉም (Collectionc)በስብስቡ ውስጥ ያሉትን ሁሉንም ንጥረ ነገሮች ካልቀረበ ወደ ስብስቡ ያክላልሐ - የሚጨመሩ ንጥረ ነገሮች ስብስብ
ባዶ ()ሁሉንም ንጥረ ነገሮች ከስብስቡ ውስጥ ያስወግዳል እና ስብስቡ ባዶ ይሆናል
ቡሊያን ይ containsል (Object o)ስብስቡ ንጥረ ነገሩን ከያዘ ይፈትሻል እና ካለ በትክክል ይመለሳልo - በስብስቡ ውስጥ የሚፈለግ አካል
ቡሊያን ሁሉንም ይ containsል (ስብስብ ሐ)ስብስቡ የስብስቡ ንዑስ ከሆነ ይፈትሻል እና ካለ በትክክል ይመለሳልሐ - የንጥረ ነገሮች ስብስብ
የቦሊያን እኩልነት (Object o)ከተላለፈው ነገር ጋር የስብስቡን እኩልነት ይፈትሻል። ሁለቱም ስብስቦች ከሆኑ እና ተመሳሳይ አባሎችን እና መጠኖችን ከያዙ ወደ እውነት ይመለሳልo - ማነፃፀር ያለበት ነገር
ቡሊያን ባዶ ነው ()ስብስቡ ባዶ ከሆነ ወይም እንዳልሆነ ይፈትሻል እና ባዶ ከሆነ ወደ እውነት ይመለሳል
የተስተካከለ ተደጋጋሚ ()በስብስቡ ውስጥ ያሉትን ንጥረ ነገሮች ለማሰስ አንድ ተደጋጋሚ ይመልሳል
ቡሊያን አስወግድ (Object o)የተወሰነውን ንጥረ ነገር ከስብስቡ ውስጥ ያስወግዳል እና ንጥረ ነገሩ ከተወገደ ወደ እውነት ይመለሳልo - የሚወገድ ንጥረ ነገር
ቡሊያን አስወግድ ሁሉም (ስብስብ ሐ)በስብስቡ ውስጥ ያሉትን ሁሉንም ንጥረ ነገሮች ካለ ከተቀመጠው ያስወግዳቸዋልሐ - የሚወገዱ ንጥረ ነገሮች ስብስብ
ሁሉም (ስብስብ ሐ)በስብስቡ ውስጥ ያሉትን ንጥረ ነገሮች ብቻ ይይዛል ፣ ይህም ማለት የስብስብ አካል ያልሆኑትን ሁሉንም ሌሎች ንጥረ ነገሮችን ያስወግዳል ማለት ነውሐ - የሚጠበቁ ንጥረ ነገሮች ስብስብ
int መጠን ()በስብስቡ ውስጥ ያሉትን የንጥሎች ብዛት ይመልሳል
SplitIterator splititerator ()በስብስቡ ውስጥ ባሉት ንጥረ ነገሮች ላይ የተከፋፈለ ድግግሞሽ ይፈጥራል
ነገር [] toArray ()በስብስቡ ውስጥ ያሉትን ሁሉንም ንጥረ ነገሮች ወደ ድርድር ይቀይረዋል
ሕብረቁምፊ ወደ ወደ ውጭ ()የነገሩን ሕብረቁምፊ ውክልና ይመልሳል
ተመልከት
በጃቫ ውስጥ DataInputStream

የተለዩ ነገሮችን ያዘጋጁ  

የጃቫ ስብስብ ይጥላል ከዚህ በታች ያሉት ልዩነቶች

  • ያልተደገፈ ኦፕሬሽን
  • NullPointerException
  • ClassCastException
  • ህገ-ወጥነት የሰጠው አስተያየት

ንጥረ ነገሮችን ከስብስቡ ውስጥ ይጨምሩ እና ያስወግዱ  

ከዚህ በታች ባለው ምሳሌ ውስጥ በመጀመሪያ ሀሽ ሴትን እንፈጥራለን እና 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” ያልተካተተ መሆኑን ማየት ይችላሉ የተቀመጠው ባህሪ። ከዚህ በታች ባለው ምሳሌ እንደሚታየው TreeSet ን በመጠቀም የ HashSet ን ንጥረ ነገሮችን መለየት እንችላለን ፡፡

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

የ Set ክወናዎች (ዩኒየን ፣ መገናኛ እና ልዩነት) ምሳሌ የጃቫ ፕሮግራም  

በዚህ ምሳሌ ውስጥ 2 ኢንቲጀር ስብስቦችን ፈጥረናል ፡፡ የ 2 ስብስቦችን ህብረት ለማከናወን የ addAll ዘዴን እንጠቀማለን ፣ ይህም ከሁለቱም ስብስቦች ሁሉንም ልዩ ንጥረ ነገሮችን ይጨምራል። ለመገናኛ (መስቀለኛ መንገድ) እኛ በመያዣዎቹ መካከል ያሉትን የጋራ አካላት ብቻ ለማቆየት የማቆያ ሁሉንም ዘዴ እንጠቀማለን ፡፡ በ 2 ስብስቦች መካከል ያለውን ልዩነት ለማግኘት በ ‹Set2› ውስጥ ካሉ የተለመዱ ንጥረ ነገሮች ጋር በሴፕ 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]

መደምደሚያ  

በዚህ መማሪያ ውስጥ በጃቫ ውስጥ ስለ Set እና ለተለያዩ ማጭበርበሮች ስብስብን እንዴት መፍጠር እና መጠቀም እንደሚችሉ ተምረዋል ፡፡

ተመልከት
ቆጠራዎች በጃቫ ውስጥ

ማጣቀሻ

1