أسئلة وأجوبة مقابلة مجموعات Java [للمستجدين وذوي الخبرة]

نشرت: 2020-12-16

إذا كنت قد تعاملت مع Java في شهادتك الجامعية أو عملت مع Java ، فيجب أن تكون على دراية جيدة بإطار عمل Java Collection. بالنسبة للمبتدئين الذين بدأوا للتو رحلة Java الخاصة بهم ، فإن إطار عمل المجموعة عبارة عن بنية موحدة مصممة لتخزين ومعالجة مجموعة (مجموعة) من العناصر.

في الأساس ، تمثل "المجموعة" مجموعة واحدة من العناصر. تتضمن مجموعة Java واجهات وفئات (ArrayList و Vector و Stack و Hashtable ، وما إلى ذلك) ، وخوارزميات ذات بنية جاهزة للاستخدام لتخزين البيانات ومعالجتها.

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

أسئلة وأجوبة مقابلة مجموعات Java

1. ما هي ميزة استخدام إطار عمل المجموعات؟

تشتمل مجموعات Java على فئات Generics و Concurrent Collection لعمليات ترابط آمنة. أيضًا ، يأتي مزودًا بواجهات حظر جنبًا إلى جنب مع تطبيقاتها في حزم Java المتزامنة. فيما يلي بعض فوائد إطار عمل مجموعات Java:

يسهل إعادة استخدام الكود وقابلية التشغيل البيني.

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

تقلل فئات التجميع التي يتم شحنها مع JDK من الجهود المطلوبة لصيانة الكود.

2. يميز بين المصفوفة والتحصيل.

على الرغم من استخدام المصفوفة والتجميع لتخزين الكائنات ومعالجة البيانات ، إلا أن هناك بعض الاختلافات الفطرية:

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

3. ما هو دور علم الوراثة في إطار المجموعات؟

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

4. قم بتسمية واجهات إطار عمل المجموعات.

فيما يلي خمس واجهات أساسية في إطار عمل المجموعات:

واجهة المجموعة - هي أساس التسلسل الهرمي لمجموعة Java. يتم توريث معظم المجموعات في Java من واجهة المجموعات.

واجهة القائمة - هي مصفوفة ممتدة تحتوي على عناصر مرتبة ، جنبًا إلى جنب مع نسخها المكررة. تدعم هذه الواجهة البحث المستند إلى الفهرس. لذلك ، يمكنك الوصول إلى أي عنصر من الفهرس الخاص به. يتم تنفيذه باستخدام فئات مختلفة مثل ArrayList و LinkedList وما إلى ذلك.

واجهة المجموعة - إنها فئة مجموعة لا يمكن أن تحتوي على عناصر مكررة. بخلاف القائمة ، لا يدعم البحث المستند إلى الفهرس ولا يحدد أي ترتيب للعناصر. قم بتعيين نماذج تجريد المجموعة الرياضية ويتم تنفيذها بواسطة فئات مثل HashSet و TreeSet و LinkedHashSet وما إلى ذلك.

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

واجهة قائمة الانتظار - تقوم هذه الواجهة بترتيب العنصر في نهج First In First Out (FIFO). وبالتالي ، تتم إزالة العناصر الموجودة في واجهة قائمة الانتظار من المقدمة وإضافتها من النهاية الخلفية.

اقرأ أيضًا: كيفية برمجة مشروعات Java وتجميعها وتشغيلها

5. متى يجب تجاوز طريقة equals () في Java؟

بينما يتحقق التنفيذ الأولي لطريقة equals () من تشابه كائنين ، فمن الضروري تجاوز طريقة equals () إذا كنت ترغب في مقارنة الكائنات بناءً على خصائصها.

6. هل من المفيد استخدام ملف الخصائص؟

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

7. ما هي وظيفة المكرر في إطار المجموعة؟

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

8. كيف يمكنك فرز كائنات المجموعة؟

في إطار عمل المجموعات ، عادةً ما يتم تنفيذ الفرز باستخدام واجهات المقارنة والمقارنة . إذا كنت تستخدم طريقة Collections.sort () ، فسوف تقوم بفرز العناصر بناءً على الترتيب الطبيعي المحدد في طريقة CompareTo (). ومع ذلك ، عند استخدام طريقة Collections.sort (Comparator) ، فسوف تقوم بفرز العناصر وفقًا لطريقة المقارنة () لواجهة المقارنة.

قراءة: مشروع جافا سوينغ

9. هل من الممكن تحويل ArrayList إلى Array و Array إلى ArrayList؟

نعم ، من الممكن القيام بذلك. يمكنك تحويل Array إلى ArrayList باستخدام الدالة asList () لفئة Array. بناء الجملة لهذا هو كما يلي:

Arrays.asList (عنصر)

يمكنك تحويل ArrayList إلى Array باستخدام وظيفة toArray () لفئة ArrayList ، مثل:

List_object.toArray (سلسلة جديدة [List_object.size ()])

10. كيفية عكس القائمة؟

كيف ستعكس قائمة ArrayList؟

يمكنك عكس ArrayList باستخدام وظيفة reverse () لفئة Collections. بناء الجملة لهذا هو كما يلي:

عكس الفراغ العام الثابت (المجموعة ج)

11. ما هو "BlockingQueue"؟

واجهة BlockingQueue موجودة في الحزمة java.util.concurrent . والغرض الأساسي منه هو تعزيز التحكم في التدفق عن طريق تنشيط الحظر كلما حاول أحد الخيوط إزالة قائمة انتظار فارغة أو قائمة انتظار قائمة انتظار كاملة موجودة. لا تقبل واجهة BlockingQueue القيم الخالية ، وإذا حاولت إدخال قيمة فارغة ، فستعرض NullPointerException.

12. اشرح "أولوية قائمة الانتظار".

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

13. كيف عناصر تخزين فئة HashSet؟

فئة HashSet هي عضو في إطار عمل مجموعات Java الذي يرث فئة AbstractSet وينفذ واجهة Set.

تقوم HashSet بتنفيذ Hashtable لإنشاء وتخزين مجموعة من العناصر. Hashtable هو مثيل لفئة HashMap التي تستخدم آلية تجزئة لتخزين البيانات داخل HashSet. يشير Hashing إلى تقنية تحويل المعلومات إلى قيمة فريدة تُعرف باسم Hash Code. يقوم رمز التجزئة بفهرسة البيانات المرتبطة بالمفتاح الفريد.

14. هل من الممكن إضافة عنصر فارغ إلى TreeSet أو HashSet؟

بينما يمكنك إضافة عنصر فارغ واحد فقط في HashSet ، لا يمكنك القيام بذلك في TreeSet لأنه يستخدم NavigableMap لتخزين العناصر. NavigableMap هو نوع فرعي من SortedMap لا يقبل / يدعم القيم الخالية. إذا قمت بإدراج عنصر فارغ في TreeSet ، فسيؤدي ذلك إلى تشغيل NullPointerException.

15. ماذا تفعل وظيفة () blankSet؟

في Java ، تُستخدم Collections.emptySet () لإرجاع المجموعة الفارغة غير القابلة للتغيير عن طريق حذف جميع العناصر الفارغة. إليك صيغة التصريح عن مجموعة فارغة ():

نهائي ثابت عام <T> تعيين <T> مجموعة فارغة ()

16. لماذا لا تقوم واجهة الخريطة بتوسيع واجهة المجموعة؟

بينما تتبع واجهة الخريطة بنية زوجية ذات قيمة رئيسية ، تخزن واجهة المجموعة مجموعة من الكائنات بطريقة منظمة مع آلية وصول محددة. لا تعمل الخريطة على توسيع واجهة المجموعة لأن وظيفة الإضافة (E e) لواجهة المجموعة لا تدعم نموذج زوج القيمة الرئيسية لوظيفة Map's put (K key، V value).

17. قم بتسمية عروض المجموعة المختلفة التي تم تمديدها بواسطة واجهة الخريطة.

تقدم واجهة الخريطة ثلاث طرق عرض لأزواج القيمة الرئيسية ، وهي:

  • عرض مجموعة المفاتيح
  • عرض مجموعة القيمة
  • عرض مجموعة الدخول

18. قائمة الميزات الأساسية لجافا Hashmap.

الميزات الأساسية لـ Hashmap هي:

  • يمكنك تخزين العناصر عن طريق تكوين أزواج من المفاتيح والقيمة واسترداد القيمة عن طريق تمرير المفتاح إلى الطريقة الصحيحة.
  • يعرض NoSuchElementException في حالة عدم وجود عنصر في الخريطة.
  • يقوم بتخزين مراجع الكائنات فقط ، مما يجعل من المستحيل استخدام أنواع البيانات الأولية مثل مزدوج أو int. بدلاً من ذلك ، يمكنك استخدام فئة مجمعة مثل عدد صحيح أو مزدوج.

يجب أن تقرأ: أسئلة وأجوبة مقابلة جافا

19. عرّف "المكدس".

في Java ، يشير Stack إلى منطقة معينة من ذاكرة الكمبيوتر تحتوي على متغيرات مؤقتة تم إنشاؤها بواسطة وظيفة. يتم الإعلان عن المتغيرات وتخزينها وتهيئتها أثناء وقت التشغيل في Stack.

20. حدد "تدوين Big-O".

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

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

خاتمة

إذا كنت مهتمًا بمعرفة المزيد حول Java ، تطوير البرامج الكاملة ، فراجع برنامج upGrad & IIIT-B's Executive PG في تطوير البرامج الكامل المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، 9+ المشاريع ، والمهام ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.

انطلق في وظيفة أحلامك

تقدم الآن للحصول على درجة الماجستير في هندسة البرمجيات