Java သတ်မှတ်နမူနာ



ဂျာဗား Java သတ်မှတ်ချက် အစုံ

Java Set Interface သည်ထပ်ပေါင်းထားသောဒြပ်စင်များမပါ ၀ င်သော unordered collection များဖြစ်သည်။ Set Interface သည် java ရှိသင်္ချာဆိုင်ရာသတ်မှတ်ချက်များကိုထောက်ပံ့ပေးသည်။ ဒီသင်ခန်းစာမှာ Java set method အမျိုးမျိုးနဲ့ Java အသုံးပြုမှုဥပမာတွေကိုလေ့လာမယ်။

Set interface ၏သွင်ပြင်လက္ခဏာများ

  • ၎င်းတွင်ထူးခြားသော element များပါ ၀ င်ပြီး၎င်းသည်ထပ်တူတန်ဖိုးများကိုခွင့်မပြုပါ
  • Java Set တွင်၎င်းဒြပ်စင်များကိုသိမ်းဆည်းရန်အမိန့်မရှိပါ
  • ၎င်းတွင်မည်သည့်အညွှန်းကိန်းမှမရှိပါ။ ထို့ကြောင့်ကျွန်ုပ်တို့သည်အနေအထားပေါ် အခြေခံ၍ မည်သည့်ဒြပ်စင်ကိုမျှ ဆက်သွယ်၍ မရပါ။
  • ၎င်းသည် interface တစ်ခုဖြစ်သဖြင့်၎င်းသည် set implementation класများမှတစ်ခုကို အသုံးပြု၍ ၎င်းကိုအကောင်အထည်ဖော်နိုင်သည်
  • Collection Interface ကိုတိုးချဲ့သည်

Java သတ်မှတ်ချက်နှင့် Java စာရင်းအကြားကွာခြားချက်

  • Java Set သည် unordered collection များဖြစ်သည် စာရင်း ဒြပ်စင်တစ်ခုအမိန့်စုဆောင်းခြင်းဖြစ်ပါတယ်။
  • Set တွင် index-based access မပါဝင်ပေမယ့် List မှာ element တွေကို access လုပ်နိူင်တဲ့ index တစ်ခုရှိတယ်။
  • Set တွင်မူထပ်ပွားတန်ဖိုးများကိုခွင့်ပြုသည်၊

အကောင်အထည်ဖော်မှုသတ်မှတ်မည်

မှစ. Java Set တစ်ခုသည် interface တစ်ခုဖြစ်သည်ကျွန်ုပ်တို့သည်အရာဝတ္ထုတစ်ခုကိုတိုက်ရိုက် ဖန်တီး၍ မရပါ။ ထို့ကြောင့်ကျွန်ုပ်တို့သည် HashSet, TreeSet, LinkedHashSet သို့မဟုတ် EnumSet ကဲ့သို့သောအတန်းတစ်ခုအားအကောင်အထည်ဖော်ရန်လိုသည်။ set class တစ်ခုစီသည်အောက်တွင်ဆွေးနွေးထားသည့်အတိုင်းမတူညီသောနည်းလမ်းများဖြင့်ပြုမူသည်။

  • HashSet - အစုံမှ ဖြတ်၍ ဖြတ်သန်းစဉ်အစဉ်အဆက်သို့မဟုတ်အဆက်မပြတ်သောဒြပ်စင်များမရှိပါ။
  • TreeSet - ၎င်းသည် sorting နှင့်အတူ element များ၏ order ကိုထိန်းသိမ်းသည်
  • LinkedHashSet - ၎င်းသည် element များ၏အစဉ်လိုက်ကို insertion နှင့်အတူတူဖြစ်သည်

Java ကိုသတ်မှတ်ပါ

Java သတ်မှတ်နမူနာ

set interface ကိုအကောင်အထည်ဖော်ရန်ကျွန်ုပ်တို့သည် java.util ။ * package ကိုသီးခြား class packets သီးခြားစီတင်သွင်းရန်လိုအပ်သည်။

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 ကို Integer type ဟုသတ်မှတ်ထားသည်။ ထို့ကြောင့်ဤအရာဝတ္ထုများသည်သာတိကျသောအမျိုးအစားများ၏တန်ဖိုးများကိုသာလက်ခံသည်။

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 interface ၏နည်းလမ်းအားလုံးပါဝင်သည်။

နည်းလမ်းဖေါ်ပြချက်parameter
boolean add (String e)၎င်းကိုမတည်ရှိပါကအစုတစ်ခုသို့ element တစ်ခုထည့်သည်။ element က set ထဲမှာရှိပြီးသားဆိုရင် call ကိုလျစ်လျူရှုပါက false return ပြန်သည်င - အစုထဲသို့ထည့်သွင်းရန်ဒြပ်စင်
boolean addAll (Collectionc)၎င်းတွင်မရှိပါကစုဆောင်းမှုရှိဒြပ်စင်များအားလုံးကိုအစုံသို့ထပ်ထည့်သည်ဂ - ထည့်သွင်းရမည့်ဒြပ်စင်များစုဆောင်းခြင်း
ရှင်းရှင်းလင်းလင်း ()set ထဲကနေ element တွေအားလုံးကိုဖယ်ထုတ်ပြီး set ကလွတ်လိမ့်မယ်
boolean ပါဝင်သည် (Object o)အစုံဒြပ်စင်ပါရှိသည်စစ်ဆေးပါနှင့်ပစ္စုပ္ပန်လျှင်စစ်မှန်တဲ့ပြန်လည်ရောက်ရှိo - အစု၌ရှာဖွေခံရဖို့ဒြပ်စင်
boolean ပါဝင်သောAll (Collection c)စုဆောင်းမှုအစုံ၏အပိုင်းတစ်ပိုင်းကိုသာလျှင်ဟုတ်မှန်လျှင်ပစ္စုပ္ပန်လျှင်စစ်မှန်တဲ့ပြန်လည်ရောက်ရှိဂ - ဒြပ်စင်များစုဆောင်းခြင်း
boolean ညီမျှခြင်း (Object o)လွန်အရာဝတ္ထုနှင့်အတူ set ၏တန်းတူရေးစစ်ဆေးသည်။ နှစ်မျိုးလုံးသည်အစစ်အမှန်များနှင့်အရွယ်တူများရှိပါက၎င်းသည်မှန်ကန်သည်o - နှိုင်းယှဉ်ဖို့လိုတဲ့အရာဝတ္ထု
boolean isEmpty ()အစုသည်ဗလာလား၊ မဟုတ်ဟုတ်မှန်ကြောင်းပြန်စစ်လျှင်ပြန်စစ်ပါ
ကြားမှာ ()အစုအတွင်းရှိဒြပ်စင်များမှတဆင့်သွားလာရန်ကြားဖြတ်တစ်ခုကိုပြန်ပို့သည်
boolean ဖယ်ရှားခြင်း (Object o)သတ်သတ်မှတ်မှတ်ဒြပ်စင်ကိုအစုမှဖယ်ထုတ်ပြီး၎င်းဒြပ်စင်ကိုဖယ်ရှားလျှင်စစ်မှန်သည်o - ဖယ်ထုတ်မည့်ဒြပ်စင်
boolean ဖယ်ရှားရေး (စုဆောင်းမှုဂ)ပစ္စုပ္ပန်လျှင်စုဆောင်းမှုထဲက element တွေကိုအပေါငျးတို့သဖယ်ရှားပေးပါသည်ဂ - ဖယ်ရှားခံရမည့်ဒြပ်စင်များစုဆောင်းခြင်း
boolean retainAll (စုဆောင်းမှုဂ)စုဆောင်းမှုရှိစုဆောင်းမှုရှိဒြပ်စင်များကိုသာဆက်လက်ထိန်းသိမ်းထားပြီးဆိုလိုသည်မှာ၎င်းသည်စုဆောင်းမှု၏အစိတ်အပိုင်းမဟုတ်သောအခြားအရာအားလုံးကိုဖယ်ရှားပစ်သည်ဂ - ထိန်းသိမ်းထားမည့်ဒြပ်စင်များစုဆောင်းခြင်း
int အရွယ်အစား ()အစုံရှိဒြပ်စင်အရေအတွက်ကိုပြန်ပို့သည်
SplitIterator အုပ်စုခွဲ ()set ထဲမှာရှိတဲ့ element တွေပေါ်မှာ split iterator တစ်ခုဖန်တီးတယ်
အရာဝတ္ထု [] toArray ()set ထဲရှိ element များအား array ထဲသို့ပြောင်းသည်
string toString ()အရာဝတ္ထုတစ်ခု string ကိုကိုယ်စားပြုမှုကိုပြန်သွားသည်

ခြွင်းချက်ထားပါ

ဂျာဗား set ပစ် အောက်ပါခြွင်းချက်

  • UnsupportedOperationException
  • NullPointerException
  • ClassCastException
  • IllegalArgumentException

အစုတခုမှဒြပ်စင်ပေါင်းထည့်ပါ

အောက်ပါဥပမာမှာပထမ ဦး ဆုံး HashSet တစ်ခုကိုဖန်တီးပြီး element ၂ ခုထည့်ပါမယ်။ နောက်တစ်ခုက HashSet တစ်ခုကိုဖန်တီးပြီးတော့နောက်ထပ် element ၂ ခုထပ်ထည့်မယ်။ ထို့နောက်၎င်းကိုပထမဆုံးအစုထဲသို့စုဆောင်းမှုအဖြစ်ထည့်သွင်းသည်။

Remove example တွင်ပထမတစ်ခုမှ element တစ်ခုကို ဦး စွာဖယ်ရှားပြီးနောက်ဒုတိယအစုမှ element အားလုံးကိုဖယ်ရှားသည်။

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 ကို အသုံးပြု၍ element များကို sorting

ဒီမှာကိန်းတွေကို array အဖြစ်ကြေညာပြီး element အတွက် loop ကိုသုံးဖို့ HashSet ကိုထည့်လိုက်တယ်။ output တွင်၊ “ 12” ပွားထားသောဒြပ်စင်သည်သတ်မှတ်ထားသည့်အရာမဟုတ်သည့်မပါဝင်ကြောင်းသင်တွေ့နိုင်ပါသည်။ အောက်ပါဥပမာတွင်တွေ့ရသကဲ့သို့ TreeSet ကို အသုံးပြု၍ HashSet ၏ element များကို sort လုပ်နိုင်သည်။

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 ကို Array ပြောင်းပါ

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 ပရိုဂရမ် (ပြည်ထောင်စု၊ လမ်းဆုံနှင့်ခြားနားချက်)

ဒီဥပမာမှာ၊ 2 ကိန်းစုံကိုဖန်တီးခဲ့တယ်။ 2 စုံပေါင်းစည်းမှုတစ်ခုပြုလုပ်ရန်ကျွန်ုပ်တို့သည်နှစ်စုံလုံးမှထူးခြားသော element များကိုပေါင်းထည့်ပေးသော addAll method ကိုအသုံးပြုသည်။ လမ်းဆုံအတွက်ကျနော်တို့အစုံအကြားသာဘုံဒြပ်စင်ကိုဆက်လက်ထိန်းသိမ်းရန်ဖို့ retainAll နည်းလမ်းကိုအသုံးပြုပါ။ 2 စုံအကြားခြားနားချက်ကိုရှာဖွေရန်အတွက် set2 ရှိဘုံဒြပ်စင်များနှင့်အတူ set1 ရှိ element အားလုံးကိုဖယ်ရှားပစ်မည့်ဖယ်ရှားသည့်llကိုအသုံးပြုသည်။

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 ကိုလေ့လာခြင်း၊ မတူညီတဲ့ကိုင်တွယ်ပုံအမျိုးမျိုးအတွက် set ကိုဘယ်လိုဖန်တီးပုံကိုလေ့လာခဲ့တယ်။

အညွှန်း