المجموعات مقابل المجموعات في Java: الفرق بين المجموعات والمجموعات في Java

نشرت: 2021-01-29

جدول المحتويات

مقدمة

ستبحث هذه المقالة في أحد الأسئلة الأكثر شيوعًا في لغة جافا - ما هي المجموعة في جافا؟ أيضًا ، ماذا تقصد بالمجموعات في Java؟ هل المجموعات والمجموعات متشابهة أو مختلفة في Java؟

ما هو التحصيل؟

يمكن ببساطة وصف المجموعة على أنها واجهة. بمساعدة المجموعة ، يمكننا بسهولة تجميع كائنات مختلفة في وحدة واحدة. تشكل المجموعة جذر أو رأس التسلسل الهرمي للواجهات. إذا كنت على دراية بلغة C ++ ، ففكر في أن مفهوم المجموعة مشابه جدًا للحاويات في لغة C ++. الواجهات الفرعية الأخرى لهذا التسلسل الهرمي هي المجموعات والقوائم والخرائط وقائمة الانتظار و Deque وما إلى ذلك.

لا تسمح لنا Java JDK بالتعامل المباشر مع واجهة جذر الحاوية ولكنها تتيح لنا الوصول المباشر إلى الواجهات الفرعية المذكورة أعلاه. هناك أيضًا واجهات فرعية يمكننا الوصول إليها بشكل غير مباشر. ومن الأمثلة على ذلك - ArrayList و PriorityQueue و Vector و HashSet وما إلى ذلك.

بحاجة للتحصيل؟

تساعدنا واجهات المجموعة هذه في التعامل مع الكائنات المختلفة عن طريق تجميعها بكفاءة وتنفيذ العمليات وفقًا لذلك. قد تكون هذه الأشياء متشابهة أو مختلفة عن بعضها البعض. بناءً على الكائنات وطريقتها في التعامل مع الكائنات الفردية ، لدينا الواجهات الفرعية المذكورة أعلاه.

دعونا ننظر بالتفصيل في بعض أكثر واجهات المجموعة شيوعًا:

  • مجموعة - أهم شيء في المجموعات هو أن المجموعات يجب ألا تحتوي أبدًا على أي عنصر أو كائن مكرر. يمكن الحصول على واجهة المجموعة هذه من جافا. استخدام الحزمة. لا تقوم المجموعات بإرجاع عناصرها في مجموعتها بأي ترتيب يمكن التنبؤ به. إنه غير مرتب ، وغالبًا ما ينسى العديد من مطوري Java هذه الحقيقة وبالتالي يواجهون الأخطاء في التعليمات البرمجية الخاصة بهم.

EnumSet و HashSet و LinkedHashSet و TreeSet و ConcurrentSkipList Set وغيرها هي بعض الفئات التي يمكن تنفيذها على واجهة Set.

  • يمكن اعتبار تنفيذ القائمة - القائمة على أنه شيء مشابه لقوائم Python ، لكن هناك بعض الاختلافات بينهما. واجهات القائمة في Java عبارة عن مجموعات من العناصر أو الكائنات المرتبة. يتم فرزها. علاوة على ذلك ، على عكس المجموعات ، يمكن أن تسمح القوائم بعناصر مكررة في مجموعتها. مثل المصفوفة ، يمكن الوصول إلى عناصر القائمة بناءً على فهرس عناصرها أو موضعها. بعض العمليات الأساسية باستخدام القوائم هي - البحث عن عنصر ، والوصول إلى عنصر من القائمة ، إلخ.

Vector و Stack و LinkedList و ArrayList و CopyOnWriteArrayList هي بعض الفئات الأكثر استخدامًا والتي يمكن استخدامها مع واجهات القائمة.

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

HashMap و HashTable و EnumMap و TreeMap و IdentityHashMap و WeakHashMap هي بعض الفئات التي يمكن تنفيذها باستخدام واجهة الخريطة.

  • Stack - معظم المبرمجين يعرفون بالفعل Stacks و Queues (نوقشت قوائم الانتظار بعد قليل). يتم تنفيذ واجهة Stack بناءً على بنية بيانات LIFO المعتادة ، أي Last In First Out. في المكدس ، يتم دفع العناصر إلى أحد طرفي الحزمة ، وتظهر العناصر من نفس نهاية الحزمة.
  • قائمة الانتظار - واجهة قائمة الانتظار ، استنادًا إلى بنية بيانات قائمة الانتظار المعتادة ، تنفذ طريقة FIFO. يرمز FIFO إلى First In First Out. بكلمات بسيطة ، يتم دفع العناصر في أحد طرفي قائمة الانتظار وتنبثق من الطرف الآخر من قائمة الانتظار.

ما هي المجموعات؟

المجموعات هي ببساطة فئة أدوات توجد في جافا. استخدام الحزمة. الطرق التي تدخل ضمن فئة المجموعات هي طرق ثابتة إلزامية.

تحتاج للمجموعات؟

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

على سبيل المثال - فئة المجموعات لديها طريقة للبحث عن عنصر معين في مجموعة. كما أن لديها طريقة لإجراء عمليات الفرز على عناصر واجهة المجموعة.

بعض فئات المجموعات شائعة الاستخدام هي:

  • Collections.binarySearch () - يبحث عن العنصر المطلوب في مجموعة باستخدام خوارزمية البحث الثنائي الشائعة.
  • Collections.sort () - ينفذ عملية الفرز على المجموعة المحددة.
  • Collections.max () - كما يتضح من الاسم ، تقوم بإرجاع عنصر الحد الأقصى من مجموعة محددة.
  • Collections.min () - إرجاع الحد الأدنى للعنصر من مجموعة محددة.
  • Collections.reverse () - يعكس ترتيب العناصر الموجودة في المجموعة المحددة.
  • Collections.copy () - كما يوحي الاسم ، باستخدام هذا ، يتم نسخ عناصر من مجموعة إلى مجموعة أخرى.

اقرأ أيضًا: أفكار وموضوعات مشروع Java

تعلم دورات البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

خاتمة

لذلك في Java ، لا تتشابه المجموعات والمجموعات على الإطلاق. المجموعة هي الواجهة حيث تقوم بتجميع الكائنات في وحدة واحدة. المجموعات هي فئة أدوات تحتوي على بعض مجموعات العمليات التي تقوم بتنفيذها على Collection. لا تحتوي المجموعة على جميع الطرق الثابتة ، لكن المجموعات تتكون من طرق كلها ثابتة.

ماذا نتعلم بعد ذلك؟ هل أنت مهتم بالتعلم الآلي والذكاء الاصطناعي؟ تقدم upGrad دبلومة PG في ML و AI بالتعاون مع IIIT-B والتي ستجعلك ماهرًا للغاية في هذه المجالات الأكثر طلبًا ، مما يجعل حياتك المهنية مثمرة.

إذا كنت مهتمًا بمعرفة المزيد حول عمليات وأدوات تطوير البرامج ، فراجع دورة تطوير مكدس upGrad Executive PG Program المصممة للمحترفين العاملين.

ما هي المجموعة في جافا؟

Java Collection هي تنفيذ إطار عمل المجموعة ، فهي توفر العديد من الفئات التي تجمع وتنظم كائنات المجموعة. التجميع هو بنية بيانات تُستخدم لتخزين البيانات المتشابهة معًا. المجموعة هي نوع بيانات يحدده المستخدم. يتم استخدامه لتجميع الكائنات في مجموعات. يمكن أن تكون المجموعة إما غير قابلة للتعديل أو قابلة للتعديل. يتم تعريف واجهة المجموعة في حزمة java.lang ويتم تنفيذ هذه الواجهة بواسطة بعض الفئات في حزمة java.util. المجموعة هي نوع عام. يجب أن تقوم جميع الفئات الفرعية للمجموعة في جافا بتنفيذ هذه الواجهة. ما يجعلها مفيدة للغاية هو حقيقة أنها تنفذ جميعًا واجهة مشتركة. مع هذا ، يمكن إجراء معالجة كائنات المجموعة دون أي تعديل. هذا يوفر الكثير من الوقت ويجعل الكود الخاص بنا أكثر قابلية للقراءة وكفاءة وقابلية لإعادة الاستخدام.

ما هي ArrayList في جافا؟

ArrayList هي فئة مهمة في Java. يتم استخدامه لتخزين قائمة كائنات ذات حجم ثابت. بمعنى آخر ، إنها تشبه المصفوفة. إضافة وحذف وتعديل محتويات القائمة يكون أسرع في ArrayList منه في المصفوفة. بالإضافة إلى ذلك ، إذا قمت بتغيير حجم القائمة ، فسيتم تغيير حجمها تلقائيًا. تطبق فئة ArrayList واجهة القائمة ، بحيث يمكنك استخدام كائن ArrayList أينما كنت تستخدم قائمة Java. تهتم فئة ArrayList بتغيير الحجم حسب الحاجة. على سبيل المثال ، إذا قمت باستدعاء طريقة add () ، وتمريرها كمرجع لقائمة مكونة من عنصر واحد ، يتم تخصيص مصفوفة جديدة للاحتفاظ بالقائمة. ثم يتم ملء المصفوفة الجديدة بعنصر واحد. يبدو الأمر كما لو كنت قد أنشأت مصفوفة ثم ملأتها بعنصر واحد. عندما يتم هدم الكائن ArrayList ، يتم تجاهل الصفيف.

ما هي HashMap في جافا؟

تعد HashMap في Java أساسًا تطبيقًا لواجهة AbstractMap. إنها في الأساس بنية بيانات تسمح بتخزين واسترجاع أزواج المفتاح والقيمة. يتمثل الاختلاف الرئيسي بين HashMap و TreeMap في أن HashMap يحسب رموز التجزئة أثناء إنشاء الإدخالات بينما يستخدم TreeMap الترتيب الطبيعي لإدخالات الطلب.