CodeGym /جاوا بلاگ /Random-SD /جاوا سيٽ هڪ انٽرفيس طور
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ٿي سگھي ٿو ھڪڙو منفرد نالو (string) ۽ گريڊ (int) ھن طبقي لاءِ. جيڪڏھن توھان چاھيو ٿا ته سڀني A شاگردن جي ھڪڙي فهرست (گريڊ >=90) بار بار حوالي ڪريو، ته پوءِ ھن لسٽ کي لوپ ڪرڻ ۽ ھر شاگرد جي گريڊ کي ھر دفعي چيڪ ڪرڻ مشڪل ھوندو. ان جي بدران، توھان استعمال ڪري سگھوٿا ھڪڙو HashSetتار جو جيڪو ڪلاس ۾ سڀني A شاگردن جي ٽريڪ رکي ٿو، جيئن ته:
  • هر دفعي شاگردن جا گريڊ اپڊيٽ ڪيا ويندا آهن، توهان آساني سان چيڪ ڪري سگهو ٿا ته شاگردن جو نئون گريڊ 90 کان وڏو يا برابر آهي يا نه.
    • جيڪڏهن ائين آهي، انهن کي استعمال ڪندي A شاگردن جي سيٽ ۾ شامل ڪريوadd()
      • جيڪڏهن اهي پهريان ئي هڪ شاگرد هئا، پوء هن آپريشن کي صرف نظر انداز ڪيو ويو آهي.
    • جيڪڏهن نه، پوء انهن کي هٽايو اي شاگردن جي سيٽ مان استعمال ڪنديremove()
      • جيڪڏهن اهي هن نقطي تي هڪ شاگرد نه هئا، پوء هن آپريشن کي صرف نظر انداز ڪيو ويو آهي.
اهڙي نظام سان، توهان کي هميشه توهان جي ڪلاس ۾ سڀني 'A' شاگردن جو هڪ تازه ترين سيٽ هوندو. جيڪڏهن توهان چيڪ ڪرڻ چاهيو ته جاني ايپلسيڊ توهان جي ڪلاس ۾ سٺو ڪم ڪري رهيو هو، توهان آساني سان contains(“Johnny Appleseed”)سيٽ تي ڪال ڪندي ائين ڪري سگهو ٿا. يقينن، هي صرف هڪ مثال آهي هڪ سيٽ لاءِ استعمال جي ڪيس جو، ۽ A شاگردن جي ٽريڪ رکڻ جو هي مخصوص مسئلو ٻين طريقن سان حل ٿي سگهي ٿو.

لاڳو ڪرڻ: HashSet جاوا ۽ جاوا TreeSet مثالن ۾

ٻئي 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()ھڪڙي شاگردن جي لسٽ جو ڪلون ٺاھيو ۽ رکڻ لاءِ ھڪ خاص وقت تي، جھڙوڪ مڊٽرم رپورٽن دوران (اھڙيءَ طرح ڪلون اصل سان گڏ تازو نه رھندو).

Java HashSet مثال

هتي جاوا ۾ استعمال ٿيندڙ 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

Java TreeSet مثال

جاوا سيٽ مثال توهان جي نظريي کي سمجهڻ ۾ مدد ڪري سگهي ٿي. هتي جاوا ۾ استعمال ٿيندڙ 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