إنشاء المصفوفات والوصول إليها
| English | العربية |
|---|---|
| initializer list/ɪˈnɪʃəlaɪzə lɪst/ | قائمة المبدئ |
| ArrayIndexOutOfBoundsException/əˈreɪ ˈɪndeks ˈaʊtəv baʊndz ekˈsepʃn/ | ArrayIndexOutOfBoundsException |
إنشاء مصفوفة
- أعلن عن مصفوفة بنوع وحجم
[]:int[] scores; - أنشئها باستخدام
newوحجم:int[] scores = new int[5];(خمس خانات). - أو اذكر القيم مباشرة:
int[] scores = {85, 90, 78};(قائمة مبدئة / initializer list). - تبدأ كل خانة بالقيمة الافتراضية للنوع (
0لـint، وnullللكائنات).
الفهرسة بدءًا من الصفر
- تُرقَم عناصر المصفوفة بدءًا من الصفر
0؛ والفهرس الأخير هوlength - 1. - الوصول إلى خانة باستخدام الفهرس
scores[i]:scores[0]هي الأولى، وscores[2]هي الثالثة. - التعيين يتم بـ
scores[0] = 100;والقراءة بـint x = scores[0];. - خطأ الفهرس الزائد بمقدار واحد off-by-one في الفهرس الأخير هو أكثر أخطاء المصفوفات شيوعًا.
حقل الطول length
- حجم المصفوفة هو حقل
length— بدون أقواس:scores.length. - (قارن
Stringlength()دالة، التي تحتوي على أقواس.) lengthثابت بمجرد إنشاء المصفوفة — المصفوفات لا تتغير حجمها.- استخدم
scores.lengthفي شروط الحلقات للبقاء ضمن الحدود.
تجاوز حدود المصفوفة
- الفهرس الصحيح يتراوح من
0إلىlength - 1؛ أي شيء آخر يثير ArrayIndexOutOfBoundsException. scores[5]على مصفوفة بطول 5 هو خارج الحدود (الفهارس هي0–4).- شرط الحلقة
i < scores.lengthيحافظ علىiضمن النطاق. - لا تستخدم أبداً
<=معlength— لأنه يتخطى النهاية بمقدار خطوة واحدة.
حجم المصفوفة هو length (حقل، بدون أقواس)؛ طول String هو دالة length() (مع أقواس). خلط بينهما لن يتم التجميع. والفهارس الصالحة هي من 0 إلى length - 1 — بينما scores[scores.length] يتخطى النهاية بمقدار خطوة واحدة ويثير ArrayIndexOutOfBoundsException. حلّق باستخدام i < scores.length، ولا تستخدم أبداً i <= scores.length.
إنشاء/access المصفوفة:
int[] a = {10, 20, 30};— الطول3، الفهارس0,1,2.a[0]هو10؛a[2]هو30؛a.lengthهو3.a[3]يتسبب في خطأ ArrayIndexOutOfBoundsException (لا يوجد فهرس 3).
أنشئ مصفوفة باستخدام new type[size] أو قائمة مبدّئة {...}. العناصر مُفهرسة من 0 إلى length - 1، وتُستعمل كما a[i]. الحجم هو حقل length (بدون أقواس). الفهرس خارج 0..length-1 يثير ArrayIndexOutOfBoundsException — حلّق باستخدام i < a.length.
فهرسة المصفوفة بدءًا من 0
a[0]=10, a[1]=20, a[2]=30؛ a.length يساوي 3.
للمصفوفة int[] a = {10, 20, 30}؛ ما هي a[0]؟
المصفوفات تُفهرس بدءًا من 0، لذا a[0] هو العنصر الأول، 10.
كيف تحصل على حجم المصفوفة a؟
حجم المصفوفة هو حقل length (بدون أقواس).
للمصفوفة int[] a = {10, 20, 30}؛ ما هو a.length؟
ثلاثة عناصر → الطول 3.
للمصفوفة ذات الطول 5، الوصول إلى الفهرس 5 (a[5])...
الفهارس الصالحة هي 0..4؛ الفهرس 5 خارج النطاق.
يستخدم String الدالة length() (كطريقة) بينما تستخدم المصفوفة length (كميدان).
اختلاف في القواعد النحوية — الأقواس لـ String، ولا شيء للمصفوفات.