CodeGym /جاوا بلاگ /Random-UR /جاوا سیٹ بطور انٹرفیس
John Squirrels
سطح
San Francisco

جاوا سیٹ بطور انٹرفیس

گروپ میں شائع ہوا۔
ایک سیٹ صرف منفرد اشیاء کا مجموعہ ہے۔ منفرد کا مطلب ہے کہ کسی بھی دو اشیاء کی ایک جیسی قدر نہیں ہو سکتی۔ سیٹ کے نفاذ پر منحصر ہے، اس کا حکم دیا جا سکتا ہے یا نہیں۔ جاوا سیٹ، ایک خلاصہ ڈیٹا کی قسم (ADT) کے طور پر، چند کلیدی آپریشنز رکھتا ہے (جہاں T کسی بھی ڈیٹا کی قسم کی نمائندگی کرتا ہے جیسے int، String، یا کسی بھی کلاس آبجیکٹ): جاوا سیٹ بطور انٹرفیس - 1
  • boolean add(T item): اگر آئٹم کو سیٹ میں کامیابی کے ساتھ شامل کیا گیا ہو تو درست اور غلط لوٹاتا ہے اگر آئٹم سیٹ میں پہلے سے موجود تھی۔
  • boolean remove(T item): اگر آئٹم کو سیٹ سے کامیابی کے ساتھ ہٹا دیا گیا ہو تو درست اور دوسری صورت میں غلط (اگر آئٹم سیٹ میں نہیں تھا) لوٹاتا ہے۔
  • boolean contains(T item): اگر آئٹم سیٹ میں ہے تو صحیح اور دوسری صورت میں غلط لوٹاتا ہے۔
  • boolean isEmpty()اگر سیٹ خالی ہو اور غلط ہو تو صحیح لوٹاتا ہے۔
جاوا میں سیٹوں میں خوبصورت خود وضاحتی فنکشن کے دستخط ہوتے ہیں (جیسا کہ انہیں ہونا چاہئے)۔ اگر آپ سیٹ میں دو ایک جیسی اشیاء شامل کرتے ہیں، تو صرف پہلی شامل کردہ آئٹم سیٹ میں ہوگی۔ ایک ہی آئٹم کو شامل کرنے کے بعد کی تمام کوششوں کو نظر انداز کر دیا جائے گا جب تک کہ آئٹم کو پہلے ہٹا دیا نہ جائے۔ سب سے زیادہ استعمال شدہ سیٹ آپریشنز میں سے ایک یہ چیک کرنا ہے کہ آیا کوئی آئٹم دیئے گئے سیٹ کے اندر ہے۔ فنکشن contains()اس کے لیے ایک زبردست رن ٹائم دیتا ہے: O(1) یا O(log n) وقت کی پیچیدگی اس بات پر منحصر ہے کہ آیا استعمال شدہ عمل درآمد بالترتیب a HashSetیا a ہے۔ TreeSetتو کیا ایک سیٹ استعمال کیا جا سکتا ہے؟ ٹھیک ہے، اگر آپ کو کبھی بھی بہت سی الگ الگ چیزوں کا ٹریک رکھنے کی ضرورت پڑتی ہے - جیسے کہ IDs، نام، یا دیگر منفرد شناخت کنندگان - اور اکثر چیک کریں کہ آیا اس طرح کے مجموعہ میں کوئی آئٹم موجود ہے، تو ایک سیٹ ممکنہ طور پر ایک اچھا انتخاب ہے۔ Studentیہاں ایک سیٹ کے استعمال کے معاملے کی مثال ہے: تصور کریں کہ آپ کے پاس کسی کلاس کے تمام طلباء کی نمائندگی کرنے والی اشیاء کی فہرست ہے ۔ اس کلاس کے لیے ہر ایک کا Studentایک منفرد نام (سٹرنگ) اور گریڈ (int) ہوسکتا ہے۔ اگر آپ تمام A طلباء (گریڈ >=90) کی فہرست کا بار بار حوالہ دینا چاہتے ہیں، تو اس فہرست کو تلاش کرنا اور ہر بار ہر طالب علم کے گریڈ کو چیک کرنا مشکل ہوگا۔ اس کے بجائے، آپ HashSetسٹرنگز کا استعمال کر سکتے ہیں جو کلاس میں تمام A طلباء کو ٹریک کرتا ہے، جیسا کہ:
  • جب بھی طلباء کے گریڈ اپ ڈیٹ ہوتے ہیں، آپ آسانی سے یہ جانچ سکتے ہیں کہ آیا طالب علم کا نیا گریڈ 90 سے بڑا ہے یا اس کے برابر ہے یا نہیں۔
    • اگر ایسا ہے تو، انہیں استعمال کرنے والے طلباء کے A سیٹ میں شامل کریں۔add()
      • اگر وہ پہلے ہی A طالب علم تھے، تو اس آپریشن کو محض نظر انداز کر دیا جاتا ہے۔
    • اگر نہیں، تو پھر انہیں A کا استعمال کرتے ہوئے طلباء کے سیٹ سے ہٹا دیں۔remove()
      • اگر وہ اس وقت A طالب علم نہیں تھے، تو اس آپریشن کو محض نظر انداز کر دیا جاتا ہے۔
اس طرح کے نظام کے ساتھ، آپ کے پاس ہمیشہ اپنی کلاس کے تمام 'A' طلباء کا ایک تازہ ترین سیٹ موجود ہوگا۔ contains(“Johnny Appleseed”)اگر آپ یہ دیکھنا چاہتے ہیں کہ آیا جانی ایپل سیڈ آپ کی کلاس میں اچھی کارکردگی کا مظاہرہ کر رہا ہے، تو آپ سیٹ پر کال کر کے آسانی سے ایسا کر سکتے ہیں ۔ بلاشبہ، یہ سیٹ کے لیے استعمال کے کیس کی صرف ایک مثال ہے، اور A طلباء پر نظر رکھنے کے اس مخصوص مسئلے کو دوسرے طریقوں سے حل کیا جا سکتا ہے۔

نفاذ: جاوا اور جاوا ٹری سیٹ کی مثالوں میں ہیش سیٹ

HashSetجاوا میں اور TreeSetجاوا میں دونوں آتے ہیں java.utils package۔ آپ انہیں اس طرح درآمد کر سکتے ہیں:
// imports everything from Java's util package, including HashSet and TreeSet
import java.util.*;
یا
import java.util.HashSet; // imports only the Java HashSet
import java.util.TreeSet; // imports only the Java TreeSet
جاوا HashSetاور جاوا کے درمیان اہم فرق TreeSetیہ ہے کہ TreeSetترتیب دیا گیا ہے، جبکہ HashSetنہیں ہے۔ یہی وجہ ہے کہ TreeSetکلیدی کارروائیوں کے لیے O(log n) وقت کی پیچیدگی ہے، جبکہ HashSetO(1) یا مستقل وقت کی پیچیدگی ہے۔ TreeSetہر وقت نظم برقرار رکھنا ضروری ہے ۔ پہلے ذکر کردہ کلیدی سیٹ آپریشنز کے علاوہ، جاوا HashSetاور TreeSetجاوا دونوں میں کچھ دوسرے مددگار افعال ہیں:
  • void clear(): تمام اشیاء کے سیٹ کو صاف کرتا ہے۔
  • int size(): سیٹ میں اشیاء کی تعداد لوٹاتا ہے۔
  • Object clone(): سیٹ کی ایک اتلی کاپی واپس کرتا ہے۔
  • Iterator iterator(): پہلی آبجیکٹ سے شروع ہو کر سیٹ پر ایک تکرار کرنے والا واپس کرتا ہے۔
آپ "طالب علموں کی فہرست" مثال میں ان فنکشنز کے استعمال کو تلاش کرنے کا تصور کر سکتے ہیں: size()اگر آپ یہ دیکھنا چاہتے ہیں کہ آپ کے پاس کتنے 'A' طلباء ہیں، یا clear()اگر آپ سمسٹر کے اختتام پر فہرست کو صاف کرنا چاہتے ہیں تو آپ کال کر سکتے ہیں۔ آپ clone()کسی خاص وقت پر A طلباء کی فہرست کا کلون بنانے اور رکھنے کے لیے استعمال کر سکتے ہیں، جیسے کہ وسط مدتی رپورٹس کے دوران (اس طرح کلون اصل کے ساتھ ساتھ تازہ ترین نہیں رہتا ہے)۔

جاوا ہیش سیٹ کی مثال

جاوا میں استعمال ہونے والے s HashSetکی ایک مختصر مثال یہ ہے :String
import java.util.HashSet;
class HashSetDemo {
    public static void main(String[] args)
    {
	  // create a HashSet of Strings
        HashSet<String> hs = new HashSet<String>();

        // Add elements using the add() method
        hs.add("Collin");
	  hs.add("Bob");
 	  hs.add("Abigail");

        // Duplicates will ignored; this statement is useless
        hs.add("Collin");


        System.out.println(hs);
	  System.out.println("Bob is in the set (T/F): " + hs.contains("Bob"));
  System.out.println("Max is in the set (T/F): " + hs.contains("Max"));


    }
}
آؤٹ پٹ: --------

[Collin, Bob, Abigail]
Bob is in the set (T/F): true
Max is in the set (T/F): false

جاوا ٹری سیٹ کی مثال

جاوا سیٹ کی مثال آپ کو تھیوری کو سمجھنے میں مدد دے سکتی ہے۔ جاوا میں استعمال ہونے والے s TreeSetکی مختصر مثال یہ ہے :String
import java.util.TreeSet;
class TreeSetDemo {
    public static void main(String[] args)
    {
	  // create a TreeSet of Strings
        TreeSet<String> ts = new TreeSet<String>();

        // Add elements using the add() method.
        ts.add("Collin");
	  ts.add("Bob");
 	  ts.add("Abigail");

        // Duplicates will ignored; this statement is useless
        ts.add("Collin");

        // printing the set prints the names in alphabetical order!
        System.out.println(ts);

	  System.out.println("Bob is in the set (T/F): " + ts.contains("Bob"));
  System.out.println("Max is in the set (T/F): " + ts.contains("Max"));
  System.out.println("Size of the set: " + ts.size());
 	  ts.clear();
	  System.out.println("Size of the set after clear(): " + ts.size());


    }
}
آؤٹ پٹ: -------

[Abigail, Bob, Collin]
Bob is in the set (T/F): true
Max is in the set (T/F): false
Size of the set: 3
Size of the set after clear(): 0
بس! امید ہے کہ اس سے مدد ملی 😊
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION