স্কালায় Set একটি কালেকশন ডেটা স্ট্রাকচার যা ইউনিক উপাদান ধারণ করে এবং এতে কোনো ডুপ্লিকেট উপাদান থাকতে পারে না। Immutable Set এবং Mutable Set এর মধ্যে প্রধান পার্থক্য হলো ডেটার পরিবর্তনযোগ্যতা (mutability)। চলুন, এই দুটি সেটের মধ্যে পার্থক্য বিস্তারিতভাবে আলোচনা করি।
১. Immutable Set (ইমিউটেবল সেট)
Immutable Set হলো একটি সেট যা একবার তৈরি হলে তার উপাদান পরিবর্তন করা যায় না। অর্থাৎ, আপনি একটি ইমিউটেবল সেটে কোনো নতুন উপাদান যোগ, মুছে ফেলতে বা পরিবর্তন করতে পারবেন না। কোনো পরিবর্তন করতে হলে একটি নতুন সেট তৈরি হবে।
ইমিউটেবল সেটের বৈশিষ্ট্য:
- পরিবর্তনযোগ্য নয়: একবার তৈরি হলে, ইমিউটেবল সেটে কোনো উপাদান যোগ বা মুছে ফেলা সম্ভব নয়।
- থ্রেড সেফ: এটি একাধিক থ্রেডের মধ্যে নিরাপদভাবে ব্যবহার করা যায়, কারণ ডেটা অপরিবর্তনীয়।
- ফাংশনাল প্রোগ্রামিং: ইমিউটেবল সেট ফাংশনাল প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ ধারণা, যেখানে ডেটাকে পরিবর্তন না করে নতুন ডেটা তৈরি করা হয়।
স্কালায় ইমিউটেবল সেট তৈরি করা:
val immutableSet = Set(1, 2, 3, 4)এখানে, Set(1, 2, 3, 4) একটি নতুন ইমিউটেবল সেট তৈরি করেছে, এবং এটি অপরিবর্তনীয়।
২. Mutable Set (মিউটেবল সেট)
Mutable Set হলো একটি সেট যা তার উপাদান পরিবর্তন করতে পারে, অর্থাৎ আপনি এর মধ্যে নতুন উপাদান যোগ বা মুছে ফেলতে পারেন। এটি ইমিউটেবল সেটের তুলনায় দ্রুত কাজ করতে পারে, কারণ ডেটা পরিবর্তন করার জন্য নতুন সেট তৈরি করতে হয় না।
মিউটেবল সেটের বৈশিষ্ট্য:
- পরিবর্তনযোগ্য: আপনি মিউটেবল সেটে উপাদান যোগ, মুছে ফেলতে বা পরিবর্তন করতে পারবেন।
- থ্রেড সেফ নয়: যেহেতু এটি পরিবর্তনযোগ্য, তাই একাধিক থ্রেডের মধ্যে একসাথে এই সেট ব্যবহারে সতর্ক থাকতে হবে।
- পারফরম্যান্স: মিউটেবল সেটের মাধ্যমে দ্রুত ডেটা পরিবর্তন এবং প্রক্রিয়া করা সম্ভব।
স্কালায় মিউটেবল সেট তৈরি করা:
import scala.collection.mutable
val mutableSet = mutable.Set(1, 2, 3, 4)এখানে, mutable.Set(1, 2, 3, 4) একটি নতুন মিউটেবল সেট তৈরি করেছে, যার উপাদান পরিবর্তন করা যেতে পারে।
৩. Immutable এবং Mutable Sets এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Immutable Set | Mutable Set |
|---|---|---|
| পরিবর্তনযোগ্যতা | পরিবর্তন করা যায় না | পরিবর্তন করা যায় |
| থ্রেড সেফটি | হ্যাঁ, থ্রেড সেফ | না, থ্রেড সেফ নয় |
| পারফরম্যান্স | কম পারফরম্যান্স (কারণ নতুন সেট তৈরি হয়) | দ্রুত পারফরম্যান্স (কারণ সরাসরি পরিবর্তন করা হয়) |
| সাইড এফেক্ট | সাইড এফেক্ট কম | সাইড এফেক্ট বেশি (কারণ ডেটা পরিবর্তিত হয়) |
| ব্যবহার | নিরাপদ, ডেটা অপরিবর্তনীয় রাখতে ব্যবহার করা হয় | ডেটা পরিবর্তন করার জন্য ব্যবহৃত হয় |
সারাংশ
- Immutable Set একটি অপরিবর্তনীয় সেট যা একবার তৈরি হলে তার উপাদান পরিবর্তন করা যায় না, এবং এটি থ্রেড সেফ।
- Mutable Set একটি পরিবর্তনযোগ্য সেট, যেখানে উপাদান যোগ বা মুছে ফেলা যায় এবং এটি দ্রুত পারফরম্যান্স প্রদান করে, তবে এটি থ্রেড সেফ নয়।
আপনার প্রয়োজনে ভিত্তি করে আপনি ইমিউটেবল অথবা মিউটেবল সেট ব্যবহার করতে পারেন।
Read more