0 تصويتات
في تصنيف البرمجة بواسطة مجهول
ما الفرق بين Map و Set؟

1 إجابة واحدة

0 تصويتات
بواسطة admin6 (450ألف نقاط)

الفرق بين Map و Set في البرمجة

Map و Set هما نوعان من هياكل البيانات المستخدمة في لغات البرمجة لإدارة المجموعات من العناصر، لكنهما يخدمان أغراضًا مختلفة ويتميزان بسلوكيات خاصة. لفهم الفرق بينهما بشكل مبسط، يمكننا القول أن Map تخزن أزواج من المفاتيح والقيم، أما Set فتخزن مجموعة من العناصر الفريدة فقط.

ما هو الـ Map؟

الـ Map هو هيكل بيانات يسمح لك بتخزين أزواج من المفاتيح والقيم المرتبطة بها. كل مفتاح داخل الـ Map فريد، ويمكنك استخدامه لاسترجاع القيمة التي تم ربطها بهذا المفتاح بسرعة. يتم استخدام Map عندما تحتاج إلى علاقات بين العناصر، مثل ربط اسم مستخدم برقم هاتف، أو ربط معرف منتج بسعره.

يمتاز Map بالتالي:

  • يمكن أن تكون المفاتيح من أي نوع، مثل نصوص أو أرقام أو حتى كائنات.
  • سهولة البحث عن قيمة معينة بواسطة مفتاحها.
  • ترتيب العناصر حسب ترتيب إدخالها (في بعض لغات البرمجة).

ما هو الـ Set؟

الـ Set هو أيضًا هيكل بيانات لكن وظيفته مختلفة، فهو يُستخدم لتخزين مجموعة من العناصر الفريدة دون تكرار. بمعنى آخر، إذا حاولت إضافة عنصر موجود بالفعل في الـ Set، فلن يتم تسجيله مرة أخرى. هذا يجعله مثالياً عندما تريد التأكد من وجود عناصر مختلفة فقط في المجموعة، مثل قائمة أرقام هواتف فريدة أو أسماء مستخدمين بدون تكرار.

يمتاز Set بما يلي:

  • عدم وجود تكرار للعناصر.
  • سهولة التحقق مما إذا كان عنصر معين موجود في المجموعة.
  • سرعة في عمليات الإضافة والحذف.

متى تستخدم Map ومتى تستخدم Set؟

اختيار استخدام Map أو Set يعتمد على الهدف المنشود من تخزين البيانات:

  • إذا كنت بحاجة إلى الربط بين مفتاح معين وقيمة مرتبطة به (مثل قاعدة بيانات بسيطة)* فالـ Map هو الخيار الأنسب.
  • أما إذا كان هدفك هو جمع عناصر فريدة بدون تكرار ومهمتك الأساسية هي التحقق من وجود العناصر أو عددها، فالـ Set هو الأنسب.

على سبيل المثال، في JavaScript:

let map = new Map();
map.set('name', 'Ahmed');
console.log(map.get('name')); // Ahmed

بينما في الـ Set:

let set = new Set();
set.add('apple');
set.add('banana');
set.add('apple'); // لن تتم إضافتها مرتين
console.log(set.size); // 2

ملخص الفرق الأساسي

باختصار، Map هو جدول يستخدم لتخزين أزواج (مفتاح => قيمة)* يتيح لك استرجاع القيمة باستخدام المفتاح. أما Set فهو مجموعة من القيم الفريدة فقط دون أي مفاتيح، يستخدم للاحتفاظ بعناصر فريدة.

مرحبًا بك في موقع اسألني، منصة عربية متخصصة في طرح الأسئلة والإجابة عليها. يمكنك بسهولة طرح أي سؤال يدور في ذهنك، وسيقوم مجتمع المستخدمين بمساعدتك من خلال تقديم إجابات مفيدة ومعلومات قيّمة في مختلف المجالات.
...