স্কালায় সেট (Set) একটি ডেটা স্ট্রাকচার যা ইউনিক উপাদান সংরক্ষণ করতে ব্যবহৃত হয়। এটি ডুপ্লিকেট উপাদান গ্রহণ করে না, অর্থাৎ, একই উপাদান একাধিকবার রাখা সম্ভব নয়। স্কালার সেটগুলি মূলত গাণিতিক সেটের ধারণা অনুসরণ করে, যেখানে একটি উপাদান একবারই উপস্থিত থাকতে পারে।
স্কালায় দুটি ধরনের সেট থাকে: মিউটেবল (Mutable) এবং **ইমিউটেবল (Immutable)**। সেটগুলি অর্ডারড না হওয়ার কারণে, তাদের উপাদানগুলির মধ্যে কোনো নির্দিষ্ট ক্রম থাকে না।
স্কালার সেটস এর বৈশিষ্ট্য
১. ইউনিক উপাদান: সেটে একই উপাদান একাধিকবার উপস্থিত হতে পারে না। এটি ডুপ্লিকেট উপাদানগুলি রোধ করতে সাহায্য করে।
২. অর্ডারড নয়: সেটে উপাদানগুলো কোন নির্দিষ্ট ক্রমে সাজানো থাকে না। এটি গাণিতিক সেটের মতো কাজ করে, যেখানে উপাদানগুলো কেবল উপস্থিত থাকে, কিন্তু তাদের অবস্থান গুরুত্বপূর্ণ নয়।
৩. পারফরম্যান্স: সেটের মধ্যে উপাদান খোঁজা, যোগ করা এবং মুছে ফেলা দ্রুত হয়, কারণ সেটগুলো হ্যাশিং বা ট্রি স্ট্রাকচার ব্যবহার করে উপাদানগুলি সংরক্ষণ করে।
৪. ফাংশনাল অপারেশন: স্কালায় সেটের উপর বিভিন্ন ফাংশনাল অপারেশন করা সম্ভব, যেমন map, filter, union, intersect, diff, ইত্যাদি।
মিউটেবল (Mutable) এবং ইমিউটেবল (Immutable) সেট
- ইমিউটেবল সেট: একবার তৈরি হলে, ইমিউটেবল সেটে কোন পরিবর্তন করা সম্ভব নয়। আপনি যদি কোন উপাদান যোগ বা মুছে ফেলতে চান, তাহলে একটি নতুন সেট তৈরি হবে।
- মিউটেবল সেট: মিউটেবল সেটে আপনি উপাদানগুলো পরিবর্তন করতে পারবেন, যেমন নতুন উপাদান যোগ করা বা পুরোনো উপাদান মুছে ফেলা।
স্কালায় সেটের উদাহরণ
ইমিউটেবল সেট:
val immutableSet = Set(1, 2, 3, 4, 5)
println(immutableSet) // Set(1, 2, 3, 4, 5)মিউটেবল সেট:
import scala.collection.mutable.Set
val mutableSet = Set(1, 2, 3, 4, 5)
mutableSet += 6 // নতুন উপাদান যোগ করা
mutableSet -= 3 // একটি উপাদান মুছে ফেলা
println(mutableSet) // Set(1, 2, 4, 5, 6)সেটের ফাংশনাল অপারেশন
১. union: দুটি সেটের একত্রিত উপাদান তৈরি করে।
val set1 = Set(1, 2, 3)
val set2 = Set(3, 4, 5)
println(set1 union set2) // Set(1, 2, 3, 4, 5)২. intersect: দুটি সেটের সাধারণ উপাদান বের করে।
val set1 = Set(1, 2, 3)
val set2 = Set(3, 4, 5)
println(set1 intersect set2) // Set(3)৩. diff: একটি সেটের উপাদান থেকে অন্য সেটের উপাদান সরিয়ে দেয়।
val set1 = Set(1, 2, 3)
val set2 = Set(2, 3, 4)
println(set1 diff set2) // Set(1)৪. contains: একটি উপাদান সেটে আছে কি না চেক করে।
val set1 = Set(1, 2, 3)
println(set1.contains(2)) // true
println(set1.contains(4)) // falseসারাংশ
সেট একটি খুব গুরুত্বপূর্ণ ডেটা স্ট্রাকচার যা স্কালার কালেকশন ফ্রেমওয়ার্কে ডুপ্লিকেট রোধ করতে ব্যবহৃত হয়। এটি ফাংশনাল প্রোগ্রামিংয়ে কার্যকরী এবং নিরাপদ ডেটা ম্যানিপুলেশনের জন্য উপযুক্ত, কারণ এতে ইমিউটেবল বা মিউটেবল স্টেট নিয়ে কাজ করা যায়। স্কালা সেটের মাধ্যমে আপনি গাণিতিক সেটের মৌলিক ধারণা ব্যবহার করে ডেটা সংগঠন ও প্রক্রিয়াকরণ করতে পারেন।
স্কালায় 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 একটি পরিবর্তনযোগ্য সেট, যেখানে উপাদান যোগ বা মুছে ফেলা যায় এবং এটি দ্রুত পারফরম্যান্স প্রদান করে, তবে এটি থ্রেড সেফ নয়।
আপনার প্রয়োজনে ভিত্তি করে আপনি ইমিউটেবল অথবা মিউটেবল সেট ব্যবহার করতে পারেন।
সেট হল একটি ডেটা স্ট্রাকচার যা একটি অর্ডারহীন কালেকশন এবং এতে প্রতিটি উপাদান শুধুমাত্র একবার থাকতে পারে (ডুপ্লিকেট উপাদান রোধ)। স্কালায় সেট ইমিউটেবল (immutable) বা মিউটেবল (mutable) হতে পারে, এবং এটি অনেক ধরনের অপারেশন যেমন যোগ, অপসারণ এবং অনুসন্ধান সমর্থন করে।
এখানে স্কালার সেটের মৌলিক ব্যবহারগুলি আলোচনা করা হবে:
১. যোগ (Adding Elements)
একটি সেটে নতুন উপাদান যোগ করার জন্য + অপারেটর ব্যবহার করা হয়। স্কালার সেট ইমিউটেবল হলে, আপনি নতুন উপাদান যোগ করলে সেটটি পরিবর্তন না হয়ে একটি নতুন সেট তৈরি হবে।
উদাহরণ:
val set1 = Set(1, 2, 3, 4)
val newSet = set1 + 5
println(newSet) // Set(1, 2, 3, 4, 5)এখানে set1 + 5 এর মাধ্যমে 5 উপাদান যোগ করা হয়েছে এবং একটি নতুন সেট newSet তৈরি হয়েছে।
২. অপসারণ (Removing Elements)
সেট থেকে একটি উপাদান মুছে ফেলার জন্য - অপারেটর ব্যবহার করা হয়। মিউটেবল সেটে এটি সরাসরি পরিবর্তন করতে সাহায্য করে, কিন্তু ইমিউটেবল সেটে এটি একটি নতুন সেট তৈরি করে।
উদাহরণ:
val set1 = Set(1, 2, 3, 4)
val newSet = set1 - 3
println(newSet) // Set(1, 2, 4)এখানে set1 - 3 এর মাধ্যমে 3 উপাদানটি সেট থেকে অপসারণ করা হয়েছে এবং একটি নতুন সেট তৈরি হয়েছে।
৩. অনুসন্ধান (Searching Elements)
একটি সেটে কোন উপাদান রয়েছে কিনা, তা যাচাই করতে contains ফাংশন ব্যবহার করা হয়। এটি Boolean মান প্রদান করে, যা সত্য (true) হলে উপাদানটি সেটে রয়েছে, আর মিথ্যা (false) হলে সেটে উপাদানটি নেই।
উদাহরণ:
val set1 = Set(1, 2, 3, 4)
val isPresent = set1.contains(3)
println(isPresent) // trueএখানে set1.contains(3) এর মাধ্যমে চেক করা হচ্ছে যে 3 উপাদানটি set1-এ রয়েছে কিনা, এবং এটি true মান ফেরত দিচ্ছে।
৪. মিউটেবল সেটে যোগ, অপসারণ, অনুসন্ধান
যদি আপনি মিউটেবল সেট ব্যবহার করেন, তবে এটি সরাসরি পরিবর্তন করা যায়। মিউটেবল সেটের জন্য += (যোগ) এবং -= (অপসারণ) অপারেটর ব্যবহার করা হয়।
উদাহরণ:
import scala.collection.mutable.Set
val set1 = Set(1, 2, 3, 4)
// যোগ করা
set1 += 5
println(set1) // Set(1, 2, 3, 4, 5)
// অপসারণ
set1 -= 2
println(set1) // Set(1, 3, 4, 5)এখানে মিউটেবল সেট set1-এ += দিয়ে নতুন উপাদান যোগ এবং -= দিয়ে উপাদান অপসারণ করা হয়েছে।
সারাংশ
- যোগ: একটি সেটে নতুন উপাদান যোগ করতে
+(ইমিউটেবল সেটে) বা+=(মিউটেবল সেটে) ব্যবহার করা হয়। - অপসারণ: একটি সেট থেকে উপাদান অপসারণ করতে
-(ইমিউটেবল সেটে) বা-=(মিউটেবল সেটে) ব্যবহার করা হয়। - অনুসন্ধান: একটি সেটে কোন উপাদান রয়েছে কিনা, তা যাচাই করতে
containsফাংশন ব্যবহার করা হয়।
স্কালার সেটগুলো ডুপ্লিকেট উপাদান গ্রহণ করে না এবং অর্ডারহীন হয়, যা ডেটার কার্যকরী ব্যবস্থাপনা এবং দ্রুত অনুসন্ধানের জন্য উপযোগী।
HashSet এবং TreeSet স্কালা (এবং অন্যান্য ভাষার কালেকশন লাইব্রেরি) দুটি জনপ্রিয় সেট (Set) ডেটা স্ট্রাকচার। দুটি সেটই ডুপ্লিকেট উপাদান রোধ করে, কিন্তু তাদের মধ্যে কিছু মূল পার্থক্য রয়েছে যা তাদের ব্যবহারের ক্ষেত্রে বিভিন্ন সুবিধা এবং কার্যকারিতা প্রদান করে।
HashSet (হ্যাশ সেট)
HashSet হল একটি মিউটেবল (mutable) সেট যা হ্যাশ টেবিল ব্যবহার করে উপাদানগুলো সংরক্ষণ করে। এটি উপাদানগুলিকে অর্ডারবিহীন (unordered) ভাবে রাখে এবং সাধারণত দ্রুত ইনসার্ট, সন্নিবেশ, এবং সার্চ অপারেশন সরবরাহ করে।
HashSet এর বৈশিষ্ট্য:
- অর্ডারবিহীন (Unordered):
HashSetউপাদানগুলোকে কোনো নির্দিষ্ট অর্ডারে রাখে না। উপাদানগুলো হ্যাশ ফাংশনের মাধ্যমে সন্নিবেশ করা হয়, যার ফলে ডেটার অর্ডার পরিবর্তিত হতে পারে। - গতি:
HashSetহ্যাশিং পদ্ধতি ব্যবহার করে, তাই উপাদানগুলির অনুসন্ধান, যোগ, এবং মুছে ফেলার অপারেশন সাধারণত O(1) সময় নেয়, যা খুব দ্রুত। - ডুপ্লিকেট উপাদান: এটি ডুপ্লিকেট উপাদানগুলোকে রোধ করে। যদি একই উপাদান পুনরায় যোগ করা হয়, তাহলে সেটে কোনো পরিবর্তন হবে না।
- মেমরি ব্যবহৃত: যেহেতু এটি হ্যাশিং ব্যবহার করে, মেমরি ব্যবহারে তুলনামূলকভাবে বেশি হতে পারে।
- সমর্থন: এটি সাধারণত
Setট্রেইট ব্যবহার করে, তাই স্কালায় এটি খুব সহজেই ব্যবহার করা যায়।
HashSet এর উদাহরণ:
val hashSet = scala.collection.mutable.HashSet(1, 2, 3, 4)
hashSet += 5 // নতুন উপাদান যোগ করা
println(hashSet) // Output: HashSet(1, 2, 3, 4, 5)TreeSet (ট্রি সেট)
TreeSet হল একটি মিউটেবল (mutable) সেট যা বাইনারি সার্চ ট্রি (Binary Search Tree) বা সাধারণত লাল-কালো ট্রি (Red-Black Tree) ব্যবহার করে উপাদানগুলো সংরক্ষণ করে। এটি উপাদানগুলোকে অর্ডার অনুযায়ী রাখে এবং সাধারণত হালকা ট্রাভার্সাল এবং অনুসন্ধান অপারেশন সরবরাহ করে।
TreeSet এর বৈশিষ্ট্য:
- অর্ডারড (Ordered):
TreeSetউপাদানগুলোকে স্বাভাবিকভাবে তুলনা করে এবং ক্রম অনুযায়ী সাজানো থাকে (যেমন, ছোট থেকে বড়)। - গতি:
TreeSetএকটি বাইনারি সার্চ ট্রি ব্যবহার করে, যার ফলে উপাদানগুলির অনুসন্ধান, যোগ, এবং মুছে ফেলা সাধারণত O(log n) সময় নেয়। - ডুপ্লিকেট উপাদান:
TreeSetডুপ্লিকেট উপাদানগুলো রোধ করে। যদি একই উপাদান পুনরায় যোগ করা হয়, তাহলে সেটে কোনো পরিবর্তন হবে না। - মেমরি ব্যবহৃত:
TreeSetহ্যাশ টেবিলের তুলনায় কম মেমরি ব্যবহার করে, কিন্তু অপারেশনগুলো সাধারণতHashSetএর তুলনায় কিছুটা ধীর গতিতে ঘটে। - স্বতন্ত্র অর্ডার: এটি উপাদানগুলোর মধ্যে নির্দিষ্ট অর্ডার বজায় রাখে, তাই এটি ব্যবহৃত হলে উপাদানগুলো সাজানো অবস্থায় পাওয়া যায়।
TreeSet এর উদাহরণ:
val treeSet = scala.collection.mutable.TreeSet(4, 2, 3, 1)
treeSet += 5 // নতুন উপাদান যোগ করা
println(treeSet) // Output: TreeSet(1, 2, 3, 4, 5)HashSet এবং TreeSet এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | HashSet | TreeSet |
|---|---|---|
| অর্ডার | অর্ডারবিহীন (Unordered) | অর্ডারড (Ordered) |
| অপারেশন গতি | খুব দ্রুত (O(1) গড় গতি) | অপেক্ষাকৃত ধীর (O(log n) গতি) |
| অপারেশন গতি (Insertion/Search/Deletion) | O(1) (গড় সময়) | O(log n) |
| অর্ডারিং | হ্যাশ ফাংশন ব্যবহার করে এবং কোনো নির্দিষ্ট অর্ডার থাকে না | বাইনারি সার্চ ট্রি ব্যবহার করে, যাতে অর্ডার থাকে |
| ডুপ্লিকেট উপাদান | ডুপ্লিকেট উপাদান রোধ করে | ডুপ্লিকেট উপাদান রোধ করে |
| মেমরি ব্যবহৃত | তুলনামূলকভাবে বেশি | তুলনামূলকভাবে কম |
| সাজানো উপাদান | না | হ্যাঁ, উপাদানগুলো সাজানো থাকে |
| ব্যবহার | সাধারণত দ্রুত অনুসন্ধান বা ডেটা প্রক্রিয়াকরণের জন্য ব্যবহৃত | যখন উপাদানগুলির সজ্জিত অর্ডার প্রয়োজন বা গণনা প্রয়োজন |
কোথায় কোনটি ব্যবহার করবেন?
- HashSet ব্যবহার করুন:
- যখন আপনাকে দ্রুত অনুসন্ধান, যোগ বা মুছা করার প্রয়োজন হয়।
- যখন আপনার উপাদানগুলোর কোন নির্দিষ্ট অর্ডার প্রয়োজন নেই।
- যখন আপনি বেশি ডেটার সাথে কাজ করছেন এবং পারফরম্যান্স প্রধান গুরুত্বপূর্ণ বিষয়।
- TreeSet ব্যবহার করুন:
- যখন আপনাকে উপাদানগুলো সাজানো অবস্থায় রাখতে হবে (যেমন, ক্রম অনুসারে ছোট থেকে বড় বা বড় থেকে ছোট)।
- যখন আপনি ইনসার্ট বা সার্চ করার সময় অর্ডার অনুসরণ করতে চান।
- যখন আপনি বড় ডেটাসেটের সাথে কাজ করছেন এবং ডেটাকে সজ্জিত রাখতে চাইছেন।
সারাংশ
- HashSet অর্ডারবিহীন এবং দ্রুত পারফরম্যান্স প্রদান করে, বিশেষ করে যদি ডুপ্লিকেট উপাদান রোধ করা এবং দ্রুত অনুসন্ধান, যোগ বা মুছে ফেলা প্রয়োজন হয়।
- TreeSet উপাদানগুলোকে সজ্জিত রাখে এবং কিছুটা ধীর গতিতে কাজ করে, তবে এটি সজ্জিত অর্ডারে ডেটা সংরক্ষণ এবং বিভিন্ন গণনার জন্য উপযুক্ত।
স্কালায় Set হলো একটি ডেটা স্ট্রাকচার যা ইউনিক (অদ্বিতীয়) উপাদান ধারণ করে এবং কোনো ধরনের ডুপ্লিকেট উপাদান রাখে না। সেটের ওপর বিভিন্ন ধরনের অপারেশন করা যায়, যেমন Union, Intersection, এবং Difference। এই অপারেশনগুলির মাধ্যমে আমরা দুটি সেটের সম্পর্ক এবং তাদের উপাদানগুলোর মধ্যে ম্যানিপুলেশন করতে পারি।
১. Union (সামঞ্জস্য বা একীভূত করা)
Union অপারেশনটি দুটি সেটের উপাদানগুলিকে একত্রিত (combine) করে একটি নতুন সেট তৈরি করে, তবে ডুপ্লিকেট উপাদান বাদ দিয়ে। অর্থাৎ, দুটি সেটের সব ইউনিক উপাদান একত্রিত হয়ে একটি নতুন সেট তৈরি হয়।
উদাহরণ:
val set1 = Set(1, 2, 3, 4)
val set2 = Set(3, 4, 5, 6)
val unionSet = set1.union(set2) // or set1 | set2
println(unionSet) // Output: Set(1, 2, 3, 4, 5, 6)এখানে set1 এবং set2 এর মধ্যে যেসব উপাদান কমন (অর্থাৎ ৩ এবং ৪) সেগুলি শুধুমাত্র একবার থাকবে, এবং অবশিষ্ট উপাদানগুলি যুক্ত হয়ে নতুন একটি সেট তৈরি হবে।
২. Intersection (অন্তর্ভুক্তি বা সংযোগ)
Intersection অপারেশনটি দুটি সেটের মাঝে যে উপাদানগুলো কমন (অথবা অভিন্ন) থাকে, শুধুমাত্র সেই উপাদানগুলোকেই অন্তর্ভুক্ত করে একটি নতুন সেট তৈরি করে। অর্থাৎ, এটি দুটি সেটের সন্নিবেশিত উপাদানগুলিকে খুঁজে বের করে।
উদাহরণ:
val set1 = Set(1, 2, 3, 4)
val set2 = Set(3, 4, 5, 6)
val intersectionSet = set1.intersect(set2) // or set1 & set2
println(intersectionSet) // Output: Set(3, 4)এখানে set1 এবং set2 এর মধ্যে যে উপাদানগুলো মিল (৩ এবং ৪) রয়েছে, সেগুলোকেই নতুন সেটে অন্তর্ভুক্ত করা হবে।
৩. Difference (ফারাক বা পার্থক্য)
Difference অপারেশনটি একটি সেট থেকে আরেকটি সেটের উপাদানগুলো বাদ দিয়ে বাকি উপাদানগুলি রিটার্ন করে। এটি দুটি সেটের মধ্যে একটি সেটের উপাদান যে আরেকটি সেটে নেই, সেই উপাদানগুলোকেই ফলস্বরূপ দেয়।
উদাহরণ:
val set1 = Set(1, 2, 3, 4)
val set2 = Set(3, 4, 5, 6)
val differenceSet = set1.diff(set2) // or set1 - set2
println(differenceSet) // Output: Set(1, 2)এখানে set1 এর উপাদানগুলির মধ্যে যেগুলি set2 তে নেই (১ এবং ২), সেগুলি differenceSet এ থাকবে।
সারাংশ
- Union (
|অথবা.union): দুটি সেটের সব ইউনিক উপাদান একত্রিত করে। - Intersection (
&অথবা.intersect): দুটি সেটের মধ্যে কমন (অন্তর্ভুক্ত) উপাদান বের করে। - Difference (
-অথবা.diff): একটি সেটের থেকে অন্য সেটের উপাদান বাদ দিয়ে বাকি উপাদানগুলো দেয়।
এগুলি স্কালার সেট অপারেশন, যা সেটের উপাদানগুলোর সাথে সম্পর্ক স্থাপন করতে সাহায্য করে এবং বিভিন্ন ধরনের ডেটা ম্যানিপুলেশন সহজে করতে সক্ষম হয়।
Read more