সে

সেট মধ্যে Java

2টি অনুশীলনী

সেট সম্পর্কে

Set হলো একটি আনঅর্ডারড কালেকশন। List-এর বিপরীতে এতে কোনো ডুপ্লিকেট মান থাকবে না বলে নিশ্চয়তা দেওয়া আছে।

Set ইন্টারফেসের জেনেরিক টাইপ প্যারামিটার বোঝায় Set-এর ভেতরে থাকা এলিমেন্টগুলোর টাইপ কী:

Set<Integer> ints = Set.of(1, 2, 3);
Set<String> strings = Set.of("alpha", "beta", "gamma");
Set<Object> mixed = Set.of(1, false, "foo");

মনে রাখবেন, Set.of() মেথডটি একটি আনমডিফায়েবল Set ইনস্ট্যান্স তৈরি করে। এই ইনস্ট্যান্সে add ও remove-এর মতো মেথড কল করতে গেলে রানটাইমে একটি এক্সেপশন আসবে।

একটি মডিফায়েবল Set তৈরি করতে হলে Set ইন্টারফেস ইমপ্লিমেন্ট করে এমন একটি ক্লাস ইনস্ট্যান্টিয়েট করতে হবে। এই ইন্টারফেস ইমপ্লিমেন্ট করা সবচেয়ে বেশি ব্যবহৃত বিল্ট-ইন ক্লাসটি হলো HashSet ক্লাস।

Set<Integer> ints = new HashSet<>();

Set ইন্টারফেসটি Collection ও Iterable ইন্টারফেস থেকে এক্সটেন্ড করে, তাই কালেকশনের অন্য ধরনগুলোর সাথে এর অনেক মেথড শেয়ার করা হয়। তবে Collection ইন্টারফেসের সাথে একটি লক্ষণীয় পার্থক্য হলো, add ও remove-এর মতো মেথড void-এর বদলে একটি boolean রিটার্ন করে, যা বোঝায় মেথডটি কল করার সময় ওই আইটেমটি Set-এ ছিল কি না:

Set<Integer> set = new HashSet<>();
set.add(1);
// => true
set.add(2);
// => true
set.add(1);
// => false
set.size();
// => 2
set.contains(1);
// => true
set.contains(3);
// => false
set.remove(3);
// => false
set.remove(2);
// => true
set.size();
// => 1
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

সেট শিখুন