Set এবং Map হল ES6 (ECMAScript 2015) এর নতুন ডেটা স্ট্রাকচার, যা ডেটা সংরক্ষণ এবং ম্যানিপুলেশন করার ক্ষেত্রে বেশ শক্তিশালী। এগুলো সাধারণ Object বা Array এর তুলনায় কিছু নতুন সুবিধা প্রদান করে, যেমন ইউনিক আইটেম সংরক্ষণ, দ্রুততর অনুসন্ধান, এবং আরও অনেক কিছু। এখানে Set এবং Map এর ব্যবহার এবং তাদের মধ্যে পার্থক্য সম্পর্কে বিস্তারিত আলোচনা করা হবে।
Set
Set একটি ডেটা স্ট্রাকচার যা শুধুমাত্র ইউনিক (অদ্বিতীয়) মান সংরক্ষণ করে। অর্থাৎ, একটি Set এ একই মান একাধিকবার রাখা যাবে না। এটি একটি iterable অবজেক্ট, যা মান (values) সংরক্ষণ করতে ব্যবহৃত হয়।
Set এর বৈশিষ্ট্য:
- Unordered: Set এ ডেটা unordered থাকে, মানে কোন নির্দিষ্ট অর্ডারে ডেটা থাকে না।
- Unique Values: Set শুধুমাত্র ইউনিক মান রাখে, একই মান একাধিকবার অন্তর্ভুক্ত করা যাবে না।
- Iterable: Set একটি iterable অবজেক্ট, যা loops এর মাধ্যমে সহজেই অ্যাক্সেস করা যায়।
Set এর উদাহরণ:
const numbers = new Set();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(2); // Duplicate value, will not be added
console.log(numbers); // Set { 1, 2, 3 }
for (let num of numbers) {
console.log(num); // 1, 2, 3
}
এখানে, numbers একটি Set যা ইউনিক মানগুলো সংরক্ষণ করেছে। add() মেথড ব্যবহার করে মান যোগ করা হয়েছে এবং একই মান একাধিকবার যোগ করার পরেও সেটি শুধুমাত্র একবারই থাকবে।
Set এর কিছু অন্যান্য মেথড:
add(value): একটি মান যোগ করে।has(value): চেক করে, মানটি Set এ আছে কিনা।delete(value): একটি নির্দিষ্ট মান Set থেকে মুছে ফেলে।clear(): সমস্ত মান Set থেকে মুছে দেয়।
const colors = new Set();
colors.add("red");
colors.add("blue");
console.log(colors.has("red")); // true
colors.delete("blue");
console.log(colors); // Set { "red" }
Map
Map একটি ডেটা স্ট্রাকচার যা key-value জোড়া হিসেবে ডেটা সংরক্ষণ করে। এটি কেবলমাত্র ইউনিক কীগুলি রাখে এবং কীগুলির সাথে সংশ্লিষ্ট মানগুলি (values) অ্যাসোসিয়েট করে।
Map এর বৈশিষ্ট্য:
- Ordered: Map এ ডেটা অর্ডার অনুযায়ী থাকে। অর্থাৎ, আইটেমগুলি আপনি যেভাবে অ্যাড করবেন, সেভাবেই থাকবে।
- Key-Value Pair: Map একটি key-value স্ট্রাকচার। মানে, প্রতিটি মান একটি নির্দিষ্ট কী এর সাথে যুক্ত থাকে।
- Any Type as Key: Object এর তুলনায় Map এ কীগুলির জন্য যে কোনো ধরনের মান (যেমন: primitive types, objects, functions) ব্যবহার করা যেতে পারে।
Map এর উদাহরণ:
const person = new Map();
person.set("name", "John");
person.set("age", 30);
person.set("city", "New York");
console.log(person); // Map { "name" => "John", "age" => 30, "city" => "New York" }
console.log(person.get("name")); // "John"
console.log(person.has("age")); // true
এখানে, person একটি Map যেখানে প্রতিটি তথ্য একটি কী এবং মানের জোড়া হিসেবে সংরক্ষিত। set() মেথড ব্যবহার করে key-value পেয়ার যোগ করা হয় এবং get() মেথড দিয়ে কোনো মান খুঁজে পাওয়া যায়।
Map এর কিছু অন্যান্য মেথড:
set(key, value): একটি key-value পেয়ার যোগ করে।get(key): নির্দিষ্ট key এর মান বের করে।has(key): চেক করে, key টি Map এ আছে কিনা।delete(key): একটি key-value পেয়ার মুছে ফেলে।clear(): সমস্ত key-value পেয়ার মুছে দেয়।
const user = new Map();
user.set("id", 101);
user.set("username", "john_doe");
console.log(user.get("id")); // 101
user.delete("username");
console.log(user.has("username")); // false
Set এবং Map এর মধ্যে পার্থক্য
| ফিচার | Set | Map |
|---|---|---|
| সংরক্ষিত ডেটা | ইউনিক মান (values) | key-value জোড়া (key-value pairs) |
| অর্ডার | অর্ডারহীন | ইনসার্ট অর্ডার অনুযায়ী (Ordered) |
| কী হিসেবে ব্যবহার | কীগুলির প্রয়োজন হয় না | কীগুলি ব্যবহার করা হয় (যেকোনো ধরনের) |
| ডুপ্লিকেট | ডুপ্লিকেট মান অনুমোদিত নয় | কীগুলিতে ডুপ্লিকেট অনুমোদিত নয়, কিন্তু ভ্যালুতে হতে পারে |
| হ্যাশিং | নেই | আছে (map এ দ্রুত অ্যাক্সেস সম্ভব) |
| আগ্রহী ডেটা টাইপ | শুধুমাত্র মান (values) | key-value pair (যেকোনো টাইপের key এবং value) |
Set এবং Map এর বাস্তব উদাহরণ
Set এর ব্যবহার:
const fruits = new Set(["apple", "banana", "orange", "apple"]);
console.log(fruits); // Set { "apple", "banana", "orange" }
fruits.add("grape");
console.log(fruits); // Set { "apple", "banana", "orange", "grape" }
fruits.delete("banana");
console.log(fruits); // Set { "apple", "orange", "grape" }
Map এর ব্যবহার:
const userDetails = new Map([
["name", "Alice"],
["age", 25],
["job", "Engineer"]
]);
console.log(userDetails.get("name")); // "Alice"
console.log(userDetails.size); // 3
userDetails.set("city", "London");
console.log(userDetails.get("city")); // "London"
সারাংশ
Set এবং Map হল ES6 এর অত্যন্ত শক্তিশালী ডেটা স্ট্রাকচার যা ডেটা সংরক্ষণ এবং ম্যানিপুলেশনে আরও বেশি ফ্লেক্সিবিলিটি এবং কার্যকারিতা প্রদান করে। Set ইউনিক মান সংরক্ষণ করে, এবং Map কীগুলির সাথে মান সংরক্ষণ করতে সাহায্য করে। প্রতিটি স্ট্রাকচারই বিশেষ কাজে ব্যবহৃত হয় এবং কোডকে আরও কার্যকরী ও পরিষ্কার করে তোলে।