CodeGym/Java Blog/এলোমেলো/জাভা একটি ইন্টারফেস হিসাবে সেট
John Squirrels
লেভেল 41
San Francisco

জাভা একটি ইন্টারফেস হিসাবে সেট

এলোমেলো দলে প্রকাশিত
সদস্যগণ
একটি সেট কেবল অনন্য বস্তুর একটি সংগ্রহ। ইউনিক মানে কোন দুটি বস্তুর একই মান থাকতে পারে না। সেট বাস্তবায়নের উপর নির্ভর করে, এটি আদেশ হতে পারে বা নাও হতে পারে। একটি অ্যাবস্ট্রাক্ট ডেটা টাইপ (ADT) হিসাবে জাভা সেটের কয়েকটি মূল ক্রিয়াকলাপ রয়েছে (যেখানে T যে কোনও ডেটা টাইপ যেমন int, স্ট্রিং, বা কোনও শ্রেণির অবজেক্টকে উপস্থাপন করে): একটি ইন্টারফেস হিসাবে জাভা সেট - 1
  • boolean add(T item): সেটটিতে আইটেমটি সফলভাবে যোগ করা হলে সত্য এবং আইটেমটি ইতিমধ্যে সেটে থাকলে মিথ্যা প্রদান করে।
  • boolean remove(T item): সেট থেকে আইটেমটি সফলভাবে সরানো হলে সত্য এবং অন্যথায় মিথ্যা (যদি আইটেমটি সেটে না থাকে) প্রদান করে।
  • boolean contains(T item): আইটেম সেটে থাকলে সত্য এবং অন্যথায় মিথ্যা প্রদান করে।
  • boolean isEmpty(): সেট খালি হলে true এবং অন্যথায় মিথ্যা ফেরত দেয়।
জাভা সেটগুলিতে বেশ স্ব-ব্যাখ্যামূলক ফাংশন স্বাক্ষর রয়েছে (যেমন তাদের উচিত)। আপনি যদি একটি সেটে দুটি অভিন্ন আইটেম যোগ করেন, তবে শুধুমাত্র প্রথম যোগ করা আইটেমটি সেটটিতে থাকবে। একই আইটেম যোগ করার সমস্ত পরবর্তী প্রচেষ্টা উপেক্ষা করা হবে যদি না আইটেমটি প্রথমে সরানো হয়। সর্বাধিক ব্যবহৃত সেট অপারেশনগুলির মধ্যে একটি হল একটি আইটেম একটি নির্দিষ্ট সেটের মধ্যে আছে কিনা তা পরীক্ষা করা। ফাংশনটি contains()এটির জন্য একটি দুর্দান্ত রানটাইম দেয়: O(1) বা O(log n) সময় জটিলতার উপর নির্ভর করে ব্যবহৃত বাস্তবায়নটি a HashSetবা aTreeSet, যথাক্রমে। তাই কি জন্য একটি সেট ব্যবহার করা যেতে পারে? ঠিক আছে, যদি আপনাকে অনেকগুলি স্বতন্ত্র বস্তুর ট্র্যাক রাখতে হয় - যেমন আইডি, নাম, বা অন্যান্য অনন্য শনাক্তকারী - এবং ঘন ঘন চেক করুন যে এই জাতীয় সংগ্রহে একটি আইটেম বিদ্যমান আছে কিনা, তাহলে একটি সেট সম্ভবত একটি ভাল পছন্দ। এখানে একটি সেটের একটি উদাহরণ ব্যবহার করা হল: কল্পনা করুন যে আপনার কাছে 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(): প্রথম বস্তু থেকে শুরু করে সেটে একটি পুনরাবৃত্তিকারী ফেরত দেয়।
আপনি "A ছাত্রদের তালিকা" উদাহরণে এই ফাংশনগুলির জন্য ব্যবহারগুলি খোঁজার কল্পনা করতে পারেন: আপনি 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

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
এখানেই শেষ! আশা করি এটি সাহায্য করেছে 😊
মন্তব্য
  • জনপ্রিয়
  • নতুন
  • পুরানো
মন্তব্য লেখার জন্য তোমাকে অবশ্যই সাইন ইন করতে হবে
এই পাতায় এখনও কোনো মন্তব্য নেই