Set Data Structure: Add Operation
Add মেথড সেটে একটি নতুন ভ্যালু যোগ করে। সেটের বৈশিষ্ট্য: ডুপ্লিকেট না থাকবে। যদি ভ্যালুটি ইতিমধ্যে থাকে, তবে যোগ হবে না এবং false রিটার্ন করবে।
Add মেথড ইমপ্লিমেন্টেশন
class MySet {
constructor() {
this.container = {}; // Object as Hash Map
}
has(val) {
return this.container.hasOwnProperty(val);
}
// Add Implementation
add(val) {
if (!this.has(val)) {
this.container[val] = val; // Key = Value (for Set semantics)
return true;
}
return false; // Duplicate - not added
}
display() {
console.log(this.container);
}
}
টেস্টিং উদাহরণ
const testSet = new MySet();
testSet.add(1); // true
testSet.add(2); // true
testSet.add(5); // true
testSet.add(2); // false (Duplicate!)
console.log("Set Contents:");
testSet.display(); // { '1': 1, '2': 2, '5': 5 }
console.log("Has 5:", testSet.has(5)); // true
console.log("Has 20:", testSet.has(20)); // false
console.log("Has 1:", testSet.has(1)); // true
আউটপুট
Set Contents:
{ '1': 1, '2': 2, '5': 5 }
Has 5: true
Has 20: false
Has 1: true
নোট: ২ বার add(2) কল করলে দ্বিতীয়বার false রিটার্ন করে এবং সেটে শুধু একবার থাকে।
ES6 Native Set API
const nativeSet = new Set();
nativeSet.add(1);
nativeSet.add(2);
nativeSet.add(5);
nativeSet.add(2); // Duplicate - ignored
console.log(nativeSet.has(5)); // true
console.log(nativeSet.has(20)); // false
console.log(nativeSet.has(1)); // true
console.log(nativeSet); // Set { 1, 2, 5 }
console.log(nativeSet.size); // 3
Set Add Characteristics
| বৈশিষ্ট্য | বर्णনা |
|---|---|
| Uniqueness | ডুপ্লিকেট অ্যালাও নয় (Set Semantics) |
| Order | Insertion Order Preserved (ES6 Set) |
| Key Types | Primitive + Object Reference |
| Return Value | Set Object (Chaining Possible: set.add(1).add(2)) |
Custom Set vs Native Set: Add Behavior
// Custom MySet - Returns Boolean
mySet.add(1); // true
mySet.add(1); // false
// Native ES6 Set - Returns Set Object (Chainable)
nativeSet.add(1); // Set { 1 }
nativeSet.add(1); // Set { 1 } (Same object returned)
Use Cases
- ইউনিক ভ্যালু কালেকশন (ট্যাগ, ক্যাটেগরি, আইডি)۔
- ডুপ্লিকেট রিমুভ করা:
[...new Set(array)]। - মেম্বারশিপ টেস্ট (O(1) Lookup)।
- ম্যাথমেটিক্যাল সেট অপারেশন (Union, Intersection, Difference)。——