دوال List في Java
أنشئ ArrayList<String> باسم tags، أضف oak ثم pine، واقرأ القيمة الأولى بـ tags.get(0). ترجم Rack.java ونفّذ java Rack. يجب أن تظهر الشاشة سطرًا واحدًا: oak. استدعاء get(0) يختار الخانة صفر. عروض لاحقة في هذه الصفحة تُظهر size() بطباعة 2 وremove(0) بما يتبقى [pine]. قراءة خانة واحدة، والعدّ، وحذف خانة: هذا ما تعلّمه الصفحة.
اقرأ خانة واحدة بـ get
في صفحة ArrayList طبعت القائمة كاملة ورأيت [oak, pine]. تلك الطباعة الكاملة ما زالت تعمل. هذه الصفحة تصل إلى قيمة واحدة في كل مرة. الاستدعاء tags.get(0) يعيد الكلمة في الخانة صفر. أرقام الخانات تبدأ من صفر، نفس فكرة plants[0] في صفحة المصفوفات، لكن الاستدعاء يستخدم أقواسًا: get(0)، لا أقواسًا معقوفة بعد الاسم وحده.
افتح Rack.java. أبقِ اسم الفئة العامة Rack ليطابق اسم الملف. احذف بقايا System.out.println(tags); كسطر التدريس الوحيد إن نسخت Shelf حرفيًا — الملف الأول المحفوظ هنا يطبع tags.get(0) بدلًا منه. احذف أيضًا أي Scanner أو nextLine أو Bell.ring() أو عرض package. يجب ألا ينتظر البرنامج الكتابة.
قرب الأعلى، فوق public class Rack، أبقِ:
import java.util.ArrayList;
داخل main أنشئ القائمة وأضف الكلمتين نفسيهما:
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
ثم اكتب:
System.out.println(tags.get(0));
مرّر 0 داخل الأقواس. لا تكتب tags[0]. لا تطبع القائمة كاملة كمسار مطلوب لهذا العرض الأول. احفظ قبل الترجمة.
import java.util.ArrayList;
public class Rack {
public static void main(String[] args) {
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
System.out.println(tags.get(0));
}
}
من المجلد الذي يحوي Rack.java نفّذ javac Rack.java. عندما تتطابق الأقواس والدعامات والأقواس الزاوية والفواصل المنقوطة، لا يكتب javac سطرًا من عنده. ثم نفّذ java Rack — لا java Rack.java ولا java ArrayList. احذف نهاية .java من أمر التشغيل.
يجب أن يطبع البرنامج سطرًا ويتوقف: oak. لا يطلب منك الكتابة. إذا انتظرت الطرفية إدخال لوحة المفاتيح، فما زال استدعاء nextLine من تمرين أقدم في أحد الملفات. احذف ذلك الاستدعاء وأبقِ الإنشاء وسطريْ add وSystem.out.println(tags.get(0));.
امشِ التشغيل مرة. تبدأ Java من Rack.main. تنمو القائمة بإضافتين. يعيد get(0) القيمة oak. يكتب سطر الطباعة تلك الكلمة. تظهر الشاشة oak. لا يجب أن يطبع شيء آخر. إذا رأيت [oak, pine] فما زلت تطبع القائمة كاملة. بدّل سطر الطباعة إلى tags.get(0). إذا رأيت ding أو 9 فما زال برنامج Porch أو Pier قديمًا يعمل — استخدم java Rack.
إذا أبقيت خطأً get(1) كطباعة، تظهر الشاشة pine. ذلك Java صالح، لكنه ليس الملف الذي تحفظه هذه الصفحة للعرض الأول. أبقِ get(0) لتكون الشاشة oak. إذا استدعيت get(2) بعد إضافتين فقط، يرمي البرنامج خطأً وقت التشغيل لأن الخانة اثنين لم تُملأ. ابقَ مع get(0) هنا.
عدّ بـ size
عرض ثانٍ يسأل كم قيمة في القائمة. بعد الإضافتين نفسيهما استدعِ tags.size() واطبع ذلك العدد.
import java.util.ArrayList;
public class Rack {
public static void main(String[] args) {
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
System.out.println(tags.size());
}
}
ترجم ونفّذ بنفس الطريقة: javac Rack.java ثم java Rack. تظهر الشاشة 2. الدالة size() تعيد عددًا صحيحًا. لا تطبع الكلمات نفسها. إذا ظهرت [oak, pine] فقد طبعت القائمة بدل size(). إذا ظهرت oak فما زال لديك طباعة get(0) من العرض الأول. لملف الثاني أبقِ فقط System.out.println(tags.size()); بعد الإضافتين.
لا تخترع tags.length على ArrayList في هذه الصفحة. المصفوفات الثابتة تستخدم .length. القوائم تستخدم .size(). خلط الاسمين بقايا شائعة من صفحة المصفوفات. أبقِ size() للقائمة.
احذف خانة بـ remove
عرض ثالث يحذف الخانة صفر ثم يطبع القائمة المتبقية.
import java.util.ArrayList;
public class Rack {
public static void main(String[] args) {
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
tags.remove(0);
System.out.println(tags);
}
}
ترجم ونفّذ مرة أخرى. بعد remove(0) تختفي oak. تنتقل pine إلى الخانة صفر. طباعة القائمة تظهر [pine]. الشاشة لم تعد [oak, pine]. إذا طبعت tags.get(0) بعد الحذف بدل القائمة كاملة، ترى pine وحدها — ذلك شكل جيد للتحقق، لكن الملف الثالث المحفوظ يطبع القائمة لترى الأقواس المربعة مع كلمة واحدة متبقية.
استدعِ remove برقم خانة موجودة. بعد إضافتين، remove(0) وremove(1) كلاهما قانوني قبل أي حذف. هذه الصفحة تبقي remove(0) لتغادر oak أولًا. لا تستدعِ remove(2) على قائمة بكلمتين — تلك الخانة لم تكن موجودة أصلًا.
مقارنة مع إنشاء ArrayList وadd
في صفحة ArrayList توقف ملف التدريس عند println(tags) والشاشة [oak, pine]. هذه الصفحة تبقي عادة الإنشاء وadd نفسها، ثم تضيف get وsize وremove. ملف Shelf المتبقي الذي يطبع القائمة كاملة فقط تاريخ، لا مسار الاختبار هنا. لهذه الصفحة نفّذ java Rack مع العرض الذي تدرسه: أولًا get(0)، ثم size()، ثم remove مع الطباعة.
لا تحتاج استيرادًا جديدًا لهذه الاستدعاءات. تنتمي إلى ArrayList بعد استيراد النوع. أبقِ import java.util.ArrayList; أعلى كل ملف Rack في هذه الصفحة.
عندما تربط لاحقًا مفاتيح بقيم، صفحة تالية — HashMap — تبدأ تلك القصة. ابقَ مع استدعاءات list هنا. لا تخترع put أو نحو map كمتطلب في هذه الصفحة.
ما يبقى لـ HashMap
تنهي هذه الصفحة عدة list الأساسية: قراءة خانة، وعدّ القيم، وحذف خانة. الصفحة التالية تفتح مجموعة مختلفة لكل إدخال فيها مفتاح وقيمة. ابقَ مع get وsize وremove على ArrayList هنا. لا تكتب أسطر HashMap في عروض Rack.
عندما تبقى ملفات Shelf.java القديمة قريبة، اتركها أو احذفها فقط إن شوشت أي فئة تشغّل. نفّذ java Rack بعد ترجمة ملف العرض المقصود.
قبل HashMap
يمكنك الإبقاء على ArrayList<String> tags، وإضافة oak وpine، وطباعة tags.get(0) لترى oak، وطباعة tags.size() لترى 2، وبعد tags.remove(0) طباعة القائمة لترى [pine]. ترجم Rack.java ونفّذ java Rack لكل عرض محفوظ. أدّت دوال list عملها. الصفحة التالية HashMap، حيث يشير مفتاح إلى قيمة في كائن واحد.
أبقِ الاستيراد. أبقِ الإضافتين قبل get أو size أو remove. أبقِ الخانة صفر كفهرس التدريس في هذه الصفحة. تلك العادات نقطة تفتيش قبل المتابعة. عندما يُظهر get(0) القيمة oak وsize() العدد 2، أنت جاهز للموضوع التالي.
🧠 اختبر معرفتك
اختبر معرفتك
تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع
📝 التعليمات
- اقرأ كل سؤال بعناية
- اختر أفضل إجابة لكل سؤال
- يمكنك إعادة الاختبار عدة مرات كما تريد
- سيتم عرض تقدمك في الأعلى