Set Data Structure: Delete Operation
Delete মেথড সেটে একটি ভ্যালু রিমুভ করে। যদি ভ্যালুটি সেটে থাকে, তবে এটি মুছে ফেলে এবং true রিটার্ন করে। নেইলে false রিটার্ন করে।
Delete মেথড ইমপ্লিমেন্টেশন
class MySet {
constructor() {
this.container = {}; // Object as Hash Map
}
has(val) {
return this.container.hasOwnProperty(val);
}
// Delete Implementation
delete(val) {
if (this.has(val)) {
delete this.container[val];
return true;
}
return false;
}
// Helper
display() {
console.log(this.container);
}
}
টেস্টিং উদাহরণ
const testSet = new MySet();
testSet.add(1);
testSet.add(2);
testSet.add(5);
console.log("Before delete:");
testSet.display(); // { '1': 1, '2': 2, '5': 5 }
testSet.delete(5); // true
testSet.delete(2); // true
testSet.delete(99); // false (not exists)
console.log("After delete:");
testSet.display(); // { '1': 1 }
console.log("Has 5:", testSet.has(5)); // false
console.log("Has 20:", testSet.has(20)); // false
console.log("Has 1:", testSet.has(1)); // true
আউটপুট
Before delete:
{ '1': 1, '2': 2, '5': 5 }
After delete:
{ '1': 1 }
Has 5: false
Has 20: false
Has 1: true
ES6 Native Set API
আধুনিক জাভাস্ক্রিপ্টে বিল্ট-ইন Set ক্লাস ব্যবহার করুন:
const nativeSet = new Set([1, 2, 5]);
console.log(nativeSet.delete(5)); // true
console.log(nativeSet.delete(2)); // true
console.log(nativeSet.has(5)); // false
console.log(nativeSet.has(20)); // false
console.log(nativeSet.has(1)); // true
console.log(nativeSet); // Set { 1 }
Delete vs Clear
| Operation | Method | Effect |
|---|---|---|
| Single Element Remove | delete(val) |
নির্দিষ্ট ভ্যালু রিমুভ |
| Remove All | clear() |
সেট সম্পূর্ণ খালি |
Time Complexity
- Custom Object-based: O(1) Average (Hash Lookup) —
hasOwnProperty+delete। - Native Set: O(1) Average — হ্যাশ টেবিল ইমপ্লিমেন্টেশন।
সারাংশ
delete(val)ভ্যালু এক্সিস্ট করলে রিমুভ করেtrueরিটার্ন করে।- নেইলে
falseরিটার্ন করে (নো এরর)। - ES6
Set.prototype.deleteএকই আচরণ করে। - অবজেক্ট কি হিসেবে স্ট্রিং কনভারশন হয় (
1→"1") — অবজেক্ট/অ্যারে কি হিসেবে ব্যবহার করলে রেফারেন্স কমপ্যারিসন হয়।