80 Java أسئلة وأجوبة مقابلة المجموعات (2025)
Java مجموعات أسئلة وأجوبة المقابلة للطلاب الجدد
1) ما هو الإطار في Java?
الإطار هو عبارة عن هندسة معمارية شائعة وجاهزة تحتوي على مجموعة من الفئات والواجهات.
2) ما هو إطار المجموعة Java?
Collection Framework عبارة عن مجموعة من الفئات والواجهات المستخدمة لتخزين الكائنات وإدارتها. يوفر فئات مختلفة مثل Vector وArrayList وHashSet وStack وما إلى ذلك. Java يمكن أيضًا استخدام إطار المجموعة للواجهات مثل Queue وSet وList وما إلى ذلك.
3) شرح فئة المجموعات
java.util.Collections هي فئة تتكون من طرق ثابتة تعمل على المجموعات. وهي تحتوي على خوارزميات متعددة الأشكال للعمل على المجموعات، "الغلافات". تحتوي هذه الفئة على طرق للخوارزميات، مثل الفرز الثنائي، والبحث، والخلط، وما إلى ذلك.
4) ما هو hashCode ()؟
hashCode () هي طريقة تُرجع رمز تجزئة صحيح.
5) التمييز بين ArrayList و Vector في ملف Java إطار الجمع.
ArrayList | ناقلات |
---|---|
لا يمكن مزامنة ArrayList. | يمكن مزامنة المتجه. |
إنها ليست فئة تراثية. | إنها فئة تراثية. |
يمكنه زيادة حجمه بنسبة 50% من حجم المصفوفة. | يمكنه زيادة حجمه عن طريق مضاعفة حجم المصفوفة. |
ArrayList ليس آمنًا لمؤشر الترابط. | المتجه هو موضوع آمن. |
6) ما هو ArrayList في Java?
ArrayList عبارة عن بنية بيانات يمكن تمديدها لاستيعاب عناصر إضافية داخل نفسها وتقليصها إلى حجم أصغر عند إزالة العناصر. إنها بنية بيانات مهمة جدًا ومفيدة في التعامل مع السلوك الديناميكي للعناصر.
7) التفريق بين Iterator و ListIterator
الفرق بين Iterator و ListIterator هو:
المكرر | مُعدل المصنف |
---|---|
يمكن لـ Iterator اجتياز عناصر المصفوفة في الاتجاه الأمامي. | يمكن لـ ListIterator اجتياز عناصر المصفوفة في الاتجاهين الخلفي والأمامي. |
يمكن استخدامه في قائمة الانتظار والقائمة والتعيين. | يمكن استخدامه في القائمة. |
يمكنه إجراء عملية الإزالة فقط. | يمكنه إجراء عمليات الإضافة والإزالة والتعيين أثناء التنقل عبر المجموعة. |
8) ما الفرق بين التكرار والتعداد؟
الفرق بين التكرار والتعداد
المكرر | تعداد |
---|---|
يمكن لـ Iterator اجتياز كل من العناصر القديمة وكذلك العناصر غير القديمة. | يمكن للتعداد اجتياز العناصر القديمة فقط. |
التكرار سريع الفشل. | التعداد ليس سريع الفشل. |
التكرار بطيء جدًا مقارنة بالتعداد. | التعداد سريع مقارنة بـ Iterator. |
يمكن للمكرر إجراء عملية إزالة أثناء التنقل عبر المجموعة. | يمكن للتعداد إجراء عملية عبور فقط على المجموعة. |
9) تحديد قائمة انتظار الحظر
BlockingQueue هي واجهة مستخدمة في Java التي يمكنها توسيع قائمة الانتظار. فهي توفر التزامن في عمليات قائمة الانتظار المختلفة مثل الاسترجاع والإدراج والحذف وما إلى ذلك.
تنتظر قائمة الانتظار حتى تصبح غير فارغة في وقت استرداد أي عناصر. يجب ألا يحتوي BlockingQueue على عناصر فارغة. إن تنفيذ قائمة الانتظار هذه آمن لمؤشر الترابط.
بناء جملة BlockingQueue هو:
public interface BlockingQueue<E> extends Queue <E>
10) شرح طريقة التجاوز يساوي ().
يتم استخدام طريقة يساوي للتحقق من التشابه بين كائنين. في حالة ما إذا كان المبرمج يريد التحقق من كائن بناءً على الخاصية، فيجب تجاوزه.
11) ما الفرق بين المقارن والمقارن؟
الفرق بين المقارن والمقارن هو:
مشابه | المقارنة |
---|---|
يوفر Comparable طريقة CompareTo() لفرز العناصر Java. | يوفر Comparator طريقة المقارنة () لفرز العناصر Java. |
توجد واجهة مماثلة في حزمة java.lang. | واجهة المقارنة موجودة في Java. حزمة الاستخدام. |
يجب أن يكون منطق الفرز في نفس الفصل الذي ستقوم بفرز كائنه. | يجب أن يكون منطق الفرز في فئة منفصلة لكتابة فرز مختلف بناءً على سمات مختلفة للكائنات. |
يجب أن تقوم الفئة التي تريد فرز كائناتها بتنفيذ الواجهة القابلة للمقارنة. | لا تحتاج الفئة التي تريد فرز كائناتها إلى تنفيذ واجهة مقارنة. |
ويوفر تسلسلات فرز واحدة. | يوفر تسلسلات فرز متعددة. |
يمكن لهذه الطريقة فرز البيانات وفقًا لترتيب الفرز الطبيعي. | تقوم هذه الطريقة بفرز البيانات وفقًا لترتيب الفرز المخصص. |
أنه يؤثر على الطبقة الأصلية. أي يتم تغيير الطبقة الفعلية. | لا يؤثر على الفصل الأصلي، أي لا يتم تغيير الفصل الفعلي. |
يتم تنفيذه بشكل متكرر في واجهة برمجة التطبيقات (API) حسب التقويم وفئات الغلاف والتاريخ والسلسلة. | يتم تطبيقه لفرز مثيلات فئات الطرف الثالث. |
تطبق جميع فئات المجمع وفئة السلسلة واجهة قابلة للمقارنة. | الفئات الوحيدة المنفذة من Comparator هي Collator وRuleBasedColator. |
12) اشرح يساوي () مع المثال
يتحقق Equals() مما إذا كان الكائن الرقمي يساوي الكائن الذي تم تمريره كوسيطة أم لا.
بناء جملة طريقة يساوي () هو:
public boolean equals(Object o)
تأخذ هذه الطريقة معلمتين 1) أي كائن، 2) قيمة الإرجاع. يتم إرجاعه صحيحًا إذا لم تكن الوسيطة التي تم تمريرها فارغة وكانت عبارة عن كائن من نوع مشابه له نفس القيمة الرقمية.
على سبيل المثال:
import java.lang.Integer; public class Test { public static void main(String args[]) { Integer p = 5; Integer q = 20; Integer r =5; Short s = 5; System.out.println(p.equals(q)); System.out.println(p.equals(r)); System.out.println(p.equals(s)); } }
13) اذكر فوائد الجمع العام
فوائد استخدام المجموعة العامة هي:
- إذا كان المبرمجون يستخدمون فئة عامة، فإنهم لا يحتاجون إلى التلبيس.
- إنه آمن من حيث النوع ويمكن التحقق منه في وقت التجميع.
- يوفر استقرار الكود من خلال اكتشاف الأخطاء في وقت التجميع.
14) شرح طريقة تحويل ArrayList إلى Array و Array إلى ArrayList
يمكن للمبرمجين تحويل Array إلى ArrayList باستخدام طريقة asList() لفئة Arrays. إنها طريقة ثابتة لفئة المصفوفات التي تقبل كائن القائمة. بناء جملة طريقة asList () هو:
Arrays.asList(item)
Java يمكن للمبرمجين تحويل ArrayList إلى كائن القائمة باستخدام بناء الجملة:
List_object.toArray(new String[List_object.size()])
15) أعط مثالاً على ArrayList
مثال ArrayList العكسي هو:
import java.util.ArrayList; class Test_ArrayList { public static void main(String[] args) { //Creating a generic ArrayList ArrayList<String> arlTest = new ArrayList<String>(); //Size of arrayList System.out.println("Size of ArrayList at creation: " + arlTest.size()); //Lets add some elements to it arlTest.add("D"); arlTest.add("U"); arlTest.add("K"); arlTest.add("E"); //Recheck the size after adding elements System.out.println("Size of ArrayList after adding elements: " + arlTest.size()); //Display all contents of ArrayList System.out.println("List of all elements: " + arlTest); //Remove some elements from the list arlTest.remove("D"); System.out.println("See contents after removing one element: " + arlTest); //Remove element by index arlTest.remove(2); System.out.println("See contents after removing element by index: " + arlTest); //Check size after removing elements System.out.println("Size of arrayList after removing elements: " + arlTest.size()); System.out.println("List of all elements after removing elements: " + arlTest); //Check if the list contains "K" System.out.println(arlTest.contains("K")); } }
16) أعط مثالاً لفرز مصفوفة بترتيب تنازلي
مثال فرز مصفوفة بترتيب تنازلي هو:
package com.guru99; public class SelectionSortAlgo { public static void main(String a[]) { int[] myArray = {860,8,200,9}; System.out.println("------Before Sort-----"); printArray(myArray); selection(myArray);//sorting array using selection sort System.out.println("-----After Sort-----"); printArray(myArray); } public static void selection(int[] array) { for (int i = 0; i < array.length - 1; i++) { System.out.println("Sort Pass Number "+(i+1)); int index = i; for (int j = i + 1; j < array.length; j++) { System.out.println("Comparing "+ array[index] + " and " + array[j]); if (array[j] < array[index]){ System.out.println(array[index] + " is greater than " + array[j] ); index = j; } } int smallerNumber = array[index]; array[index] = array[i]; array[i] = smallerNumber; System.out.println("Swapping Elements: New Array After Swap"); printArray(array); } } static void printArray(int[] array){ for(int i=0; i < array.length; i++) { System.out.print(array[i] + " "); } System.out.println(); } }
17) شرح الواجهات الأساسية لل Java إطار المجموعات
Java إطار المجموعة هو جذر التسلسل الهرمي للمجموعة. إنه يمثل مجموعة من الكائنات كعناصرها. ال Java لغة البرمجة لا توفر التنفيذ المباشر لهذه الواجهة.
- تعيين: المجموعة عبارة عن مجموعة لا تحتوي على عناصر مكررة. ويستخدم hashtable لتخزين العناصر.
- قائمة: القائمة عبارة عن مجموعة مرتبة يمكن أن تحتوي على عناصر مكررة. وهي تمكن المطورين من الوصول إلى أي عناصر من صندوق الوارد الخاص بها. القائمة تشبه المصفوفة ذات الطول الديناميكي.
- خريطة: إنه كائن يقوم بتعيين مفاتيح للقيم. لا يمكن أن يحتوي على مفاتيح مكررة. يمكن تعيين كل مفتاح إلى قيمة واحدة على الأقل.
18) ما هي مميزات Java هاشماب؟
ميزات Java خريطة التجزئة هي:
- يمكن تخزين القيم في الخريطة من خلال تكوين زوج من القيمة الرئيسية. يمكن استرداد القيمة باستخدام المفتاح عن طريق تمريرها إلى الطريقة الصحيحة.
- إذا لم يكن هناك أي عنصر في الخريطة، فستطرح "NoSuchElementException".
- يخزن HashMap مراجع الكائنات فقط. ولهذا السبب من المستحيل استخدام أنواع البيانات البدائية مثل double أو int. استخدم فئة الغلاف (مثل Integer أو Double) في حين أن.
19) ما هو المكدس؟
المكدس عبارة عن منطقة خاصة من ذاكرة الكمبيوتر تقوم بتخزين المتغيرات المؤقتة التي تم إنشاؤها بواسطة وظيفة. في المكدس، يتم الإعلان عن المتغيرات وتخزينها وتهيئتها أثناء وقت التشغيل.
20) ما هي القائمة المرتبطة؟
القائمة المرتبطة هي بنية بيانات يمكنها تخزين مجموعة من العناصر. بمعنى آخر، يمكن استخدام القوائم المرتبطة لتخزين عدة كائنات من نفس النوع. تتم الإشارة إلى كل وحدة أو عنصر في القائمة على أنها عقدة. تحتوي العقدة الموجودة في القائمة المرتبطة على بياناتها وعنوان العقدة التالية. إنها مثل السلسلة. تُستخدم القوائم المرتبطة لإنشاء الرسوم البيانية والأشجار.
Java أسئلة وأجوبة المقابلة للمجموعات من ذوي الخبرة
21) أعط مثالاً على ArrayList
مثال ArrayList هو:
import java.util.ArrayList; class Test_ArrayList { public static void main(String[] args) { //Creating a generic ArrayList ArrayList<String> arlTest = new ArrayList<String>(); //Size of arrayList System.out.println("Size of ArrayList at creation: " + arlTest.size()); //Lets add some elements to it arlTest.add("D"); arlTest.add("U"); arlTest.add("K"); arlTest.add("E"); //Recheck the size after adding elements System.out.println("Size of ArrayList after adding elements: " + arlTest.size()); //Display all contents of ArrayList System.out.println("List of all elements: " + arlTest); //Remove some elements from the list arlTest.remove("D"); System.out.println("See contents after removing one element: " + arlTest); //Remove element by index arlTest.remove(2); System.out.println("See contents after removing element by index: " + arlTest); //Check size after removing elements System.out.println("Size of arrayList after removing elements: " + arlTest.size()); System.out.println("List of all elements after removing elements: " + arlTest); //Check if the list contains "K" System.out.println(arlTest.contains("K")); } }
22) شرح القائمة المرتبطة التي يدعمها Java
نوعان من القائمة المرتبطة التي يدعمها Java هي:
- قائمة مرتبطة منفردة: القائمة المرتبطة بشكل فردي هي نوع من بنية البيانات. في القائمة المرتبطة بشكل فردي، تقوم كل عقدة في القائمة بتخزين محتويات العقدة ومرجع أو مؤشر إلى العقدة التالية في القائمة. ولا يقوم بتخزين أي مرجع أو مؤشر إلى العقدة السابقة.
- القوائم المرتبطة بشكل مضاعف: القوائم المرتبطة بشكل مزدوج هي نوع خاص من القوائم المرتبطة حيث يمكن إجراء الاجتياز عبر عناصر البيانات في كلا الاتجاهين. أصبح هذا ممكنًا من خلال وجود رابطين في كل عقدة، أحدهما يرتبط بالعقدة التالية والآخر يتصل بالعقدة السابقة.
23) اشرح الطرق التي توفرها واجهة قائمة الانتظار؟
طرق Java واجهة قائمة الانتظار هي:
خدمة التوصيل | الوصف |
---|---|
إضافة منطقية (كائن) | إدراج العنصر المحدد في قائمة الانتظار. يعود صحيحا في حالة نجاحه. |
عرض منطقي (كائن) | يتم استخدام هذه الطريقة لإدراج العنصر في قائمة الانتظار. |
إزالة الكائن () | يقوم باسترداد وإزالة رأس قائمة الانتظار. |
استطلاع كائن () | (): يقوم باسترداد وإزالة رأس قائمة الانتظار أو إرجاع قيمة فارغة في حالة وجودها فارغة. |
استطلاع كائن () | يقوم باسترداد وإزالة رأس قائمة الانتظار أو إرجاع قيمة فارغة في حالة وجودها فارغة. |
عنصر الكائن () | يسترد البيانات من قائمة الانتظار، لكنه لا يزيل رأسها. |
نظرة خاطفة على الكائن () | يسترد البيانات من قائمة الانتظار ولكن لا يزيل رأسها، أو في حالة إذا كانت قائمة الانتظار فارغة، فسيتم استردادها فارغة. |
24) اذكر الطرق التي توفرها فئة Stack
الطرق المهمة التي توفرها فئة Stack هي:
- يدفع(): ادفع العنصر إلى المكدس.
- فارغ (): تكتشف هذه الطريقة ما إذا كان المكدس فارغًا أم لا.
- البوب (): هذه Java تعمل طريقة إطار التجميع على إزالة الكائن من المكدس.
- يبحث (): تبحث هذه الطريقة عن العناصر الموجودة في المكدس.
- نظرة خاطفة (): هذه Java تنظر الطريقة إلى كائن المكدس دون إزالته.
25) قم بتعريفemptSet() في ملف Java إطار المجموعات
الطريقة ()emptySet تُرجع المجموعة الفارغة غير القابلة للتغيير عندما يحاول المبرمجون إزالة العناصر الفارغة. المجموعة التي يتم إرجاعها بواسطةemptSet() قابلة للتسلسل. بناء جملة هذه الطريقة هو:
النهائي العام الساكن تعيين مجموعة فارغة()
26) التفريق بين التحصيل والتحصيل
الفرق بين المجموعة والمجموعات هي:
المجموعات | المجموعات |
---|---|
المجموعة عبارة عن واجهة. | المجموعات هي فئة. |
إنه يمثل مجموعة من الكائنات ككيان واحد. | وهو يحدد طرق فائدة مختلفة لكائنات المجموعة. |
المجموعة هي الواجهة الجذرية لـ Java إطار التجميع. | المجموعات هي فئة فائدة عامة. |
يتم استخدام هذه الواجهة لاستخلاص هياكل بيانات المجموعة. | تحتوي هذه الفئة على أساليب ثابتة لمعالجة بنية البيانات. |
27) قم بتعريف LinkedHashSet في ملف Java إطار التجميع؟
LinkedHashSet هي فئة فرعية من فئة تسمى HashSet وتنفذ واجهة المجموعة. إنها نسخة مرتبة جيدًا من HashSet والتي تحافظ على قائمة مرتبطة بشكل مضاعف عبر جميع عناصرها.
28) ما الفرق بين الفشل والآمن؟
اخفاق سريع | المأمونة الجانب |
---|---|
لا يسمح بتعديل المجموعة أثناء التكرار. | يسمح بتعديل المجموعة أثناء التكرار. |
يمكنه طرح ConcurrentModificationException | لا يمكن أن يرمي أي استثناء. |
ويستخدم المجموعة الأصلية لاجتياز العناصر. | ويستخدم نسخة المجموعة الأصلية لاجتياز العناصر. |
ليس هناك شرط للذاكرة الإضافية. | هناك حاجة إلى ذاكرة إضافية. |
29) عرض مجموعة القائمة لواجهة الخريطة
طرق عرض المجموعة لواجهة الخريطة هي: 1) عرض مجموعة المفاتيح، 2) عرض مجموعة القيمة، و3) عرض مجموعة الإدخال.
30) ما هي فوائد إطار التحصيل في Java?
فوائد إطار التجميع في Java هي:
- Java يوفر إطار التجميع هياكل بيانات عالية الكفاءة والفعالية تعزز دقة وسرعة البرنامج.
- تم تطوير البرنامج مع Java من السهل الحفاظ على إطار التجميع.
- يمكن للمطور مزج الفئات مع أنواع أخرى مما يؤدي إلى زيادة إمكانية إعادة استخدام التعليمات البرمجية.
- تشير Java يمكّن إطار المجموعة المبرمجين من تعديل أنواع المجموعات البدائية بالطريقة التي يريدونها.
31) ما هي الطريقة الجيدة لفرز كائنات المجموعة Java?
طريقة جيدة للفرز Java تستخدم كائنات المجموعة واجهات قابلة للمقارنة وقابلة للمقارنة. يمكن للمطور استخدام Collections.sort()، ويتم فرز العناصر بناءً على الترتيب المذكور في CompareTo().
عندما يستخدم المطور المجموعات، يقوم بالفرز (المقارن)، فإنه يقوم بفرز الكائنات اعتمادًا على المقارنة () لواجهة المقارنة.
32) شرح المتجهات في Java
المتجه هو نفس المصفوفة. يحتوي على مكونات يمكن الوصول إليها باستخدام قيمة الفهرس. يمكن أن تحتوي المتجهات على طريقة قديمة ليست جزءًا من إطار عمل المجموعة.
33) ما الفرق بين المجموعة والخريطة؟
بكج | خريطة |
---|---|
تنتمي المجموعة إلى package-java.util. | تنتمي الخريطة إلى الحزمة java.util. |
يمكنه توسيع واجهة المجموعة. | لا يمتد واجهة المجموعة. |
لا يسمح بالقيم المكررة. | يسمح بقيم مكررة. |
يمكن للمجموعة فرز قيمة فارغة واحدة فقط. | يمكن للخريطة فرز قيم فارغة متعددة. |
34) تحديد فئة القاموس
فئة القاموس هي أ Java فئة لديها القدرة على تخزين أزواج القيمة الرئيسية.
35) تعريف EnumSet
java.util.EnumSet هو تنفيذ Set يمكن استخدامه مع أنواع enum. يجب أن تأتي EnumSet التي تحتوي على جميع العناصر من نوع enum واحد محدد صراحةً أو ضمناً. لا تتم مزامنته، ولا يُسمح أيضًا بالمفاتيح الفارغة. يوفر EnumSet طرقًا مثل EnumSetof(E first, E… rest)، وcomplementOf(EnumSet s)، وcopyOf(Collection c).
36) ما الطريقتان لإزالة التكرارات من ArrayList؟
هناك طريقتان لإزالة التكرارات من ArrayList:
- مجموعة التجزئة: يمكن للمطور استخدام HashSet لإزالة العنصر المكرر من ArrayList. العيب هو أنه لا يمكن الحفاظ على ترتيب الإدراج.
- لينكدهاشسيت: يمكن للمطورين أيضًا الحفاظ على ترتيب الإدراج باستخدام LinkedHashSet بدلاً من HashSet.
37) ما هو IdentityHashMap؟
IdentityHashMap هي فئة تنفذ واجهات قابلة للتسلسل وقابلة للاستنساخ وخريطة وتوسع فئة AbstractMap. وهو مصمم للحالة التي تكون فيها الحاجة إلى دلالات المساواة المرجعية.
38) ما هو WeakHashMap؟
WeakHashMap هو تطبيق لـ Java رسم خريطة. يتم استخدامه لتخزين المراجع الضعيفة لمفاتيحه. يسمح الفرز باستخدام هذه الخريطة بجمع زوج من القيمة الرئيسية كقمامة. لم تتم الإشارة إلى مفتاحه خارج WeakHashMap.
39) ما هي طرق جعل خيط التجميع آمناً؟
طرق جعل خيط التجميع آمنًا هي:
- المجموعات.synchronizedList(القائمة);
- المجموعات.synchronizedMap(الخريطة);
- المجموعات.synchronizedSet(مجموعة);
40) شرح غير معتمدOperationException
غير معتمدOperationException هو استثناء يتم طرحه على الأساليب التي لا يدعمها نوع المجموعة الفعلي.
على سبيل المثال، يقوم المطور بإنشاء قائمة للقراءة فقط باستخدام "Collections.unmodifiableList(list)" واستدعاء طريقة call() أو add() أو Remove(). يجب أن يكون واضحًا أنه غير مدعومOperationException.
41) قم بتسمية فئات المجموعة التي تمنح العناصر الوصول العشوائي إلى عناصرها
فئات المجموعة التي تمنح وصولاً عشوائيًا للعناصر إلى عناصرها هي: 1) ArrayList و2) HashMap و3) TreeMap و4) Hashtable.
42) شرح الفرق بين قائمة الانتظار وDeque.
طابور | صف مزدوج الذيل |
---|---|
يطلق عليه قائمة انتظار ذات نهاية واحدة | يُطلق عليه اسم طابور ذو نهايتين |
تتم إضافة العناصر الموجودة في قائمة الانتظار أو إزالتها من أحد الأطراف | تتم إضافة العناصر الموجودة في قائمة الانتظار من أي من الطرفين ويمكن إضافتها وإزالتها من كلا الطرفين |
إنها أقل تنوعًا. | إنه أكثر تنوعًا. |
43) اذكر واجهة القائمة والضبط الخاصة بالتنفيذ
واجهة قائمة تنفيذ الفصل: 1) ArrayList، 2) Vector، و 3) LinkedList.
واجهة مجموعة تنفيذ الفصل: 1) HashSet و 2) TreeSet.
44) شرح نمط التصميم الذي يتبعه التكراري
يتبع المُكرر تفاصيل نمط تصميم المُكرر. فهو يوفر للمطور إمكانية التنقل عبر مجموعات الكائنات باستخدام واجهة مشتركة دون معرفة تنفيذها.
45) ما هو النظرة الخاطفة () لواجهة قائمة الانتظار؟
نظرة خاطفة () هي طريقة لواجهة قائمة الانتظار. يقوم باسترداد جميع العناصر ولكنه لا يزيل رأس قائمة الانتظار. في حالة إذا كانت قائمة الانتظار فارغة، فستعود هذه الطريقة فارغة.
46) ما هو CopyOnWriteArrayList؟
CopyOnWriteArrayList هو أحد أشكال ArrayList حيث يتم تنفيذ عمليات مثل add وset عن طريق إنشاء نسخة من المصفوفة. إنه آمن للخيوط، وبالتالي لا يلقي ConcurrentModificationException. يسمح ArrayLists هذا بجميع العناصر، بما في ذلك null.
47) التفريق بين ArrayList وLinkedList
الفرق بين ArrayList و LinkedList هو:
ArrayList | لينكدليست |
---|---|
ويستخدم مجموعة ديناميكية. | ويستخدم قائمة مرتبطة بشكل مزدوج. |
ArrayList ليس مفضلاً للتلاعب. | LinkedList هو الأفضل للتلاعب. |
يوفر ArrayList الوصول العشوائي. | LinkedList لا يوفر وصولاً عشوائيًا. |
يقوم ArrayList بتخزين الكائنات فقط ومن ثم فهو يأخذ قدرًا أقل من الذاكرة | يقوم LinkedList بتخزين الكائن بالإضافة إلى كائن العنوان؛ وبالتالي، فإنه يأخذ المزيد من الحمل من الذاكرة. |
48) شرح طرق واجهة التكرار
طرق واجهة التكرار هي:
خدمة التوصيل | الوصف |
---|---|
المنطقية العامة hasNext() | يعود صحيحًا في حالة احتواء المُكرر على عناصر؛ وإلا، يعود خطأً. |
الكائن العام التالي () | تقوم هذه الطريقة بإرجاع العنصر وتحريك المؤشر إلى القيمة التالية. |
إزالة الفراغ العام () | هذه Java يمكن للطريقة إزالة آخر العناصر التي تم إرجاعها بواسطة المُكرر. تُستخدم طريقة public void remove() بشكل أقل. |
49) ما هي أساليب فئة HashSet؟
طرق فئة HashSet هي:
طرق | الوصف |
---|---|
إضافة منطقية (كائن س) | تضيف هذه الطريقة عنصر الذكر إلى هذه المجموعة إذا لم يكن موجودًا بالفعل. |
منطقي يحتوي على (كائن س): | يتم إرجاعه صحيحًا إذا كانت المجموعة تحتوي على العنصر المحدد. |
باطل واضح (): | تقوم هذه الطريقة بإزالة العناصر المحددة. |
منطقي فارغ (): | يُرجع صحيحًا في حالة عدم احتواء المجموعة على عناصر. |
إزالة منطقية (الكائن س): | يقوم بإزالة العنصر المحدد من المجموعة. |
استنساخ الكائن (): | تقوم هذه الطريقة بإرجاع نسخة من مثيل HashSet: لا يتم استنساخ العناصر نفسها. |
مكرر مكرر () | تقوم بإرجاع مكرر على العناصر الموجودة في هذه المجموعة. |
حجم صحيح (): | تقوم بإرجاع عدد العناصر المتوفرة في المجموعة. |
50) ما هي طرق Java فئة TreeSet؟
طرق Java فئة TreeSet هي:
طرق | أوصاف |
---|---|
منطقية addAll (مجموعة c) | أضف كافة العناصر الموجودة في المجموعة المحددة إلى هذه المجموعة. |
قيمة منطقية تحتوي على (كائن o) | يُرجع صحيحًا إذا كانت المجموعة تحتوي على عنصر الإشارة. |
قيمة منطقية فارغة () | هذه Java ترجع الطريقة صحيحة إذا كانت هذه المجموعة لا تحتوي على عناصر. |
إزالة منطقية (كائن o) | قم بإزالة العنصر المحدد من المجموعة. |
إضافة باطلة (كائن س) | يضيف العنصر المحدد إلى المجموعة. |
باطل واضح () | هذه Java الطريقة تزيل كافة العناصر من المجموعة. |
51) شرح HashSet المرتبطة
Java فئة LinkedHashSet عبارة عن قائمة مرتبطة وتنفيذ جدول التجزئة لواجهة Set. أنه يحتوي على عناصر فريدة مثل HashSet. HashSet المرتبطة في Java كما يوفر أيضًا عمليات مجموعة اختيارية يمكنها الحفاظ على ترتيب الإدراج.
52) ما هي الطرق الهامة المستخدمة في القائمة المرتبطة؟
الطرق الهامة المستخدمة في القائمة المرتبطة هي:
خدمة التوصيل | الوصف |
---|---|
إضافة منطقية (كائن س) | يتم استخدامه لإلحاق العنصر المحدد بنهاية المتجه. |
قيمة منطقية تحتوي على (كائن o) | إنها طريقة ترجع صحيحًا إذا كانت هذه القائمة تحتوي على العنصر المحدد. |
إضافة باطلة (فهرس كثافة العمليات، عنصر الكائن) | إدراج العنصر عند العنصر المحدد في المتجه. |
باطلة addFirst (كائن س) | يتم استخدامه لإدراج العنصر المحدد في البداية. |
إضافة باطلة (كائن س) | يتم استخدامه لإلحاق العنصر المحدد بالنهاية. |
حجم صحيح () | يمكن استخدام هذه الطريقة لإرجاع العدد الإجمالي للعناصر في القائمة. |
إزالة منطقية (كائن o) | يمكنه إزالة التواجد الأول للعنصر المحدد من هذه القائمة. |
int IndexOf (عنصر الكائن) | هذه Java تقوم الطريقة بإرجاع الفهرس مع التواجد الأول لعنصر الإشارة في هذه القائمة، أو -1. |
int lastIndexOf (عنصر الكائن) | هو Java الطريقة التي تُرجع الفهرس بآخر تواجد للعنصر المحدد في هذه القائمة، أو -1. |
53) قائمة الفئات المختلفة المتاحة في مجموعات
الفئات المختلفة المتوفرة في مجموعات هي: HashSet، وTreeSetand، وLinkedHashSet.
54) قائمة الطرق المتاحة في Java واجهة قائمة الانتظار
- إضافة منطقية (كائن)
- عرض منطقي (كائن)
- إزالة الكائن ()
- استطلاع الكائن ()
- عنصر الكائن ()
- نظرة خاطفة على الكائن ()
55) التفريق بين القائمة والمجموعة.
قائمة | بكج |
---|---|
مجموعة مرتبة من العناصر | مجموعة غير مرتبة من العناصر |
يحافظ على ترتيب الإدراج | لا يحافظ على ترتيب الإدراج |
يُسمح بالقيم المكررة | غير مسموح بالقيم المكررة |
يمكن تخزين أي عدد من القيم الخالية | يمكن تخزين قيم فارغة واحدة فقط |
يمكن استخدام ListIterator لاجتياز القائمة في أي اتجاه | لا يمكن استخدام ListIterator لاجتياز مجموعة |
يحتوي على فئة قديمة تسمى المتجه | لا يحتوي على أي فئة قديمة |
Java أسئلة وأجوبة مقابلة المجموعات لأكثر من 5 سنوات من الخبرة
56) اشرح لكل حلقة مع المثال
For-Each Loop هو شكل آخر من أشكال حلقة for المستخدمة لاجتياز المصفوفة. فهو يقلل من الكود بشكل كبير، ولا يوجد أي استخدام للفهرس أو بالأحرى العداد في الحلقة.
مثال لكل حلقة:
class UsingForEach { public static void main(String[] args) { String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"}; //The conventional approach of using the for loop System.out.println("Using conventional For Loop:"); for(int i=0; i< arrData.length; i++){ System.out.println(arrData[i]); } System.out.println("\nUsing Foreach loop:"); //The optimized method of using the for loop - also called the foreach loop for (String strTemp : arrData){ System.out.println(strTemp); } } }
57) شرح مشغل الماس
يتيح عامل الماس للمترجم جمع وسيطات النوع للفئة العامة. في Java SE، يمكن للمطور استبدال المنشئ المعلمات بمجموعة معلمات فارغة (<>) تعرف باسم عامل الماس.
58) شرح واجهة الوصول العشوائي
يتم استخدام واجهة RandomAccess بواسطة تطبيقات القائمة للإشارة إلى أنها تدعم بسرعة.
59) قم بتسمية فئات المجموعة التي تنفذ واجهة الوصول العشوائي
Javaتحتوي حزمة .util على فئات يمكنها تنفيذ واجهة الوصول العشوائي وهي: CopyOnWriteArrayList وStack وArrayList وVector.
60) كيفية الانضمام إلى قوائم ArrayLists متعددة؟
توفر القائمة طريقة addall () متعددة في ArrayList Java.
على سبيل المثال، فكر في قائمتين 1) AreaList و2) SecondAreaList. يمكن للمطور الانضمام إليهم باستخدام addall() مثل:
AreaList.addAll( SecondAreaList);
61) شرح واجهة deque
Java.util.Deque هو Java، واجهة تمتد إلى واجهة قائمة الانتظار. وهي توفر الدعم لإدراج العناصر وحذفها في كلا الطرفين. وتسمى هذه القائمة أيضًا قائمة انتظار ذات نهايتين.
62) شرح Linkedhashmap
LinkedHashMap هو تطبيق لواجهة الخريطة. يمكنه أيضًا توسيع فئة HashMap. لذلك، مثل HashMap، يتم تمكين LinkedHashMap Java يسمح للمطورين بمفتاح فارغ واحد وأكثر من قيمة فارغة واحدة.
63) شرح طرق إزالة العناصر من ArrayList
طرق إزالة العناصر من ArrayList هي:
خدمة التوصيل | الوصف |
---|---|
واضح() | تقوم هذه الطريقة بإزالة العناصر من ArrayList. |
إزالة (مؤشر كثافة العمليات) | يمكن لطريقة ArrayList هذه إزالة العنصر في موضع معين. |
إزالة (كائن س) | يمكنه إزالة التواجد الأول لعنصر الإشارة من ArrayList. |
حذف الكل() | يمكنه إزالة قائمة العناصر الموجودة في مجموعة معينة. |
إزالة إذا (المسند منقي) | تقوم هذه الطريقة بإزالة العناصر التي تفي بذكر المسند. |
64) شرح الخريطة. الدخول في الخريطة
Map.entry هو Java واجهة java.util. لها واجهة متداخلة في Map. يجب أن تكون هذه الواجهة مؤهلة باسم الفئة أو الواجهة التي تعد عضوًا فيها. وبالتالي، فهي مؤهلة كمدخل Map. وهي تمثل زوجًا من المفتاح والقيمة يمكن أن يشكل عنصرًا في Map.
تقوم هذه الطريقة بإرجاع طريقة عرض المجموعة. على سبيل المثال، اعتبر خريطة المدينة بمثابة خريطة. يمكن للمطور استخدام enterSet() للحصول على العرض المحدد للخريطة التي تحتوي على عنصر Map.Entry. يمكن للمبرمج أيضًا استخدام getKey() و getValue() لـ Map.Entry للحصول على زوج المفتاح وقيمة الخريطة.
65) ما هي الطريقة المستخدمة لفرز مصفوفة بترتيب تصاعدي؟
Java طريقة إطار التجميع، يتم استخدام Collections.sort() لفرز مصفوفة بترتيب تصاعدي.
66) كيفية قياس أداء ArrayList؟
يمكن قياس أداء ArrayList من خلال:
- إضافة عنصر: يمكن للمطور إضافة عنصر في نهاية ArrayList باستخدام طريقة add(E e). هو يا(١). في أسوأ السيناريوهات، قد يذهب إلى O(n). يمكن أن يحدث هذا إذا أضاف المطور عناصر أكثر من سعة المصفوفة.
- استرداد العنصر: يمكن للمطور الوصول إلى فهرس المصفوفة باستخدام مؤشر get(int). يمكن قياس الأداء في هذه الحالة باستخدام ArrayList get() is O(1).
- إزالة عنصر: في حالة قيام المطورين بإزالة العنصر باستخدام remove(int index)، فيمكن حساب أداء ArrayList باستخدام عملية remove(int index) المذكورة وهي طريقة O(n – index).
67) شرح فئة LinkedList
فئة LinkedList في Java ينفذ Deque و List باستخدام قائمة مرتبطة مزدوجة. توجد عقدة فئة خاصة في قائمة مرتبطة مزدوجة توفر بنيتها. كما تحتوي أيضًا على متغير عنصر لحمل القيمة والمرجع إلى فئة Node. يمكن استخدام هذا لتوصيل العقد التالية والسابقة.
68) أعط مثالاً على Hashmap
مثال Hashmap هو:
import java.util.HashMap; import java.util.Map; public class Sample_TestMaps{ public static void main(String[] args){ Map<String, String> objMap = new HashMap<String, String>(); objMap.put("Name", "Suzuki"); objMap.put("Power", "220"); objMap.put("Type", "2-wheeler"); objMap.put("Price", "85000"); System.out.println("Elements of the Map:"); System.out.println(objMap); } }
69) كيفية تكرار الخريطة؟
لا يمكن للمطور تكرار الخريطة مباشرة، ولكن هذه الواجهة لديها طريقتان توفران مجموعة عرض للخريطة. هذه الطرق هي:
- تعيين > مجموعة الإدخال (): إنها طريقة تُرجع مجموعة تحتوي على الإدخالات المذكورة في الخريطة. يتم الاعتراض بشكل عام على هذه الإدخالات، والتي لها نوع Map. دخول.
- تعيين مجموعة المفاتيح (): هذه Java تقوم الطريقة بإرجاع مجموعة تحتوي على مفتاح الخريطة.
70) شرح الخريطة الهيكلية في Java
TreeMap هي فئة تطبق واجهة Map LinkedHashMap وHashMap. يمكنه أيضًا تنفيذ واجهة NavigableMap ويمكنه توسيع فئة AbstractMap.
71) ما الفرق بين Hashmap وHashtable؟
خريطة التجزئة | جدول التجزئة |
---|---|
لم تتم مزامنته. | لقد تمت مزامنته. |
خريطة التجزئة يسمح بمفتاح واحد كقيمة فارغة. | لا يسمح HashTable بالقيم الخالية. |
يتم استخدام Iterator لاجتياز HashMap. | يتم استخدام Iterator أو Enumerator لاجتياز HashTable. |
يمكن استخدامه لكل من HashTable وHashMap وهو سريع الفشل. | يمكن استخدامه مع HashTable وهو آمن من الفشل. |
أداء HashMap أسرع من HashTable. | Hashtable ليس أسرع بكثير مقارنة بـ HashMap. |
72) شرح العمل الداخلي لـ HashSet في Java
مجموعة التجزئة في Java يستخدم HashMap داخليًا لتخزين العناصر. يمكنه أيضًا تخزين قيم فريدة بدون قيم مكررة.
In Javaيمكن لمطور HashSet أن يكون لديه طريقة add(E e) التي تأخذ العنصر فقط لإضافته كمعلمة. لا يقبل زوج المفتاح والقيمة.
73) اشرح تدوين Big-O بمثال
يصور تدوين Big-O أداء الخوارزمية كعدد العناصر في ArrayList. يمكن للمطور استخدام تدوين Big-O لاختيار تنفيذ المجموعة. يعتمد على الأداء والوقت والذاكرة.
على سبيل المثال، ArrayList get(index i) هي طريقة لإجراء عملية ذات وقت ثابت. ولا تعتمد على العدد الإجمالي للعناصر المتاحة في القائمة. وبالتالي، فإن الأداء في تدوين Big-O هو O(1).
74) شرح أفضل الممارسات في Java إطار المجموعة
أفضل الممارسات في Java إطار الجمع هي:
- اختيار النوع الصحيح من المجموعة يعتمد على الحاجة.
- تجنب إعادة الصياغة أو تغيير الحجم من خلال تقدير العدد الإجمالي للعناصر التي سيتم تخزينها في فئات المجموعة.
- اكتب Java البرنامج من حيث الواجهات. وهذا من شأنه أن يساعد المطور على تغيير تنفيذه بسهولة في المستقبل.
- يمكن للمطور استخدام الأدوية العامة من أجل سلامة النوع.
- استخدم الفئات غير القابلة للتغيير التي قدمها Java مجموعة التطوير. تجنب تنفيذ يساوي () و hashCode () للفئات المخصصة.
- يجب على المبرمج استخدام فئة أداة المجموعات للخوارزميات أو للحصول على مجموعات للقراءة فقط أو متزامنة أو فارغة. سيؤدي هذا إلى تحسين إمكانية إعادة استخدام التعليمات البرمجية مع انخفاض قابلية الصيانة.
75) شرح الأنواع المختلفة لطوابير الانتظار Java
هناك ثلاثة أنواع من قوائم الانتظار في Java:
- طابور الأولوية: إنه نوع خاص من قائمة الانتظار حيث يتم فرز العناصر حسب ترتيبها الطبيعي أو المقارنة المخصصة.
- قائمة الانتظار الدائرية: إنه نوع من طوابير الانتظار حيث يتم تنفيذ عمليات المستخدم بناءً على طريقة FIFO. يتم توصيل العنصر الأخير بالموضع الأول لتكوين دائرة.
- Double-قائمة الانتظار المنتهية: قائمة الانتظار ذات النهايتين هي نوع بيانات تجريدي يعمم قائمة الانتظار. يمكن إضافة العناصر الموجودة في هذه القائمة أو إزالتها من الرأس أو الذيل.
76) ما الفرق بين المكدس وقائمة الانتظار؟
كومة | طابور |
---|---|
مبدأ عمل المكدس هو LIFO. | مبدأ العمل في قائمة الانتظار هو FIFO. |
يتم استخدام طرف واحد لإجراء عملية الإدراج أو الحذف للعناصر. | يتم استخدام أحد الطرفين لإجراء الإدراج، ويتم استخدام الطرف الآخر لحذف العناصر. |
ويستخدم مؤشر واحد. | يستخدم مؤشرين في قائمة انتظار بسيطة. |
ليس لديها أي نوع من البديل. | لديها متغيرات مثل قائمة الانتظار ذات الأولوية، وقائمة الانتظار الدائرية، وقائمة الانتظار ذات النهاية المزدوجة. |
سهلة الاستخدام. | ليس من السهل استخدامها. |
77) ما هو الفرق بين المصفوفة والمكدس؟
الفرق بين المصفوفة والمكدس هو:
مجموعة | كومة |
---|---|
إنها مجموعة من العناصر التي تم تحديدها بواسطة الفهرس. | إنها عملية تجميع تعمل كعمليات دفع وإخراج. |
أنه يحتوي على عناصر من أنواع البيانات التي هي نفسها. | يحتوي على عناصر من أنواع البيانات المختلفة. |
يمكن إزالة العناصر أو إضافتها إلى المصفوفة باستخدام عملية الوصول العشوائي. | يمكن إزالة العناصر أو إضافتها إلى كومة باستخدام عملية LIFO. |
78) تعريف التكرار()
Iterator() عبارة عن واجهة توفر طرقًا لتكرار المجموعة. يمكن أن يحل المكرر محل التعداد في Java. إنه يسمح للمتصل بإزالة العناصر من المجموعة. توفر الطريقة طريقة عامة للتنقل باستخدام عناصر المجموعة وتنفيذ نمط تصميم التكرار.
79) ما هي الطرق المختلفة للتكرار على القائمة؟
Java يمكن لمبرمج إطار عمل المجموعة التكرار على قائمة بطريقتين: 1) استخدام المكرر، و2) استخدامه لكل قائمة حلقة.
80) ما هي مزايا المكدس؟
مزايا المكدس هي:
- يساعدك على إدارة البيانات بطريقة Last In First Out (LIFO)، وهو أمر غير ممكن مع القائمة المرتبطة والمصفوفة.
- عندما يتم استدعاء دالة ما، يتم تخزين المتغيرات المحلية في مكدس، ويتم تدميرها تلقائيًا بمجرد إرجاعها.
- يتم استخدام المكدس عندما لا يتم استخدام متغير خارج تلك الوظيفة.
- يسمح لك بالتحكم في كيفية تخصيص الذاكرة وإلغاء تخصيصها.
- يقوم المكدس تلقائيًا بتنظيف الكائن.
- لا تفسد بسهولة
- المتغيرات لا يمكن تغيير حجمها.
ستساعد أسئلة المقابلة هذه أيضًا في حياتك (شفهي)