Java/מערכים: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Johnny Zoo (שיחה | תרומות)
שורה 79:
אם נעשה הקבלה לתחום המתמטיקה, ניתן להתבונן על מערך בגודל N כווקטור ממימד N, ועל מערך דו מימדי בגודל NxM - כמטריצה בגודל NxM. נראה כעת כיצד משתמשים במערכים אלה בצורה מעשית.
 
====מערכים דו-מימדיים פשוטים====
מערך דו-מימדי פשוט ניתן ליצור בדומה למערך חד-מימדי, עם הבדל קל. נראה כאן דוגמה ליצירת מערך דו-מימדי שיכיל אוסף תקליטורים, בכלכך שבכל תקליטור - רשימת השירים אותה הוא מכיל. נגביל את עצמנו לחמישה תקליטורים, אשר בכל אחד מהם 12 שירים, לכל היותר. המידע יאוכסן בצורה הבאה: ניקח מערך דו-מימדי מטיפוס String, בגודל 5x13., כל מערך (חד מימדי) יכיל תקליטור אחד, והאיברכאשר האיבר הראשון בשמובכל שלמערך כל מערךכזה יכיל את שמו שלשם האלבום. נכריז על המערך:
{{קוד|<nowiki>String[][] music = new String[5][13];</nowiki>}}
גישה לתאי המערך תתבצע גם היא באופן דומה למה שכבר ראינו. נראה קטע קוד שמדפיס את כל איברי המערך:
שורה 117:
====עבודה עם מערכים לא אחידים====
כאשר משתמשים במערכים שאינם אחדים בגודלם, קשה עד בלתי אפשרי להשתמש בלולאות כמו שראינו עד כה. לכן, כדאי להשתמש באפשרות length, שמאפשרת לדעת את גודל המערך. גודלו של מערך בשם arr יינתן לנו על ידי הפקודה {{קוד בשורה|arr.length}}. שתי הערות:
* בניגוד לאפשרות דומה שקיימת עם משתנים מטיפוס String, כאן אין צורך בסוגריים. תזכורת: כדי לקבל את אורכה של מחרוזת בשם str, נשתמש בפקודה {{קוד בשורה|str.length()}}.
* הנתון שמוחזר הוא מספר שלם, ששווה לגודל המערך. יש לזכור שמיספור איברי המערך מתחיל ב-0, ולכן האינקדס של האיבר האחרון אינו גודל המערך, אלא גודל המערך פחות אחד.
נראה דוגמה לשימוש ב-length:
שורה 128:
}
</pre></div>
זוהי דוגמה כמעט זהה לזו שכבר ראינו, שמדפיסה את כל איברי המערך הדו-מימדי music, אך כאן ניתן להדפיס (כמעט) בבטחה את המערך גם אם איננו יודעים בוודאות את הגדלים. נזכיר כי אם הכרזנו על מערך ולא אתחלנו אותו - התוכנית תקרוס.
 
====מערכים רב-מימדיים====
מערכים רב-מימדיים עובדים כמובצורה שראינודומה לזו שכבר ראינו עם המערכים החד-מימדיים והדו-מימדיים, אך עם מספר מימדים גדול יותר. כך נכריז על מערך ארבע-מימדי:
{{קוד|<nowiki>int arr[][][][] = new int[10][9][8][7];</nowiki>}}
גם הגישה לאיברי מערך כזה היא כפי שקל לצפות:
{{קוד|<nowiki>arr[0][0][0][0] = 1;</nowiki>}}
בדרך כלל אין צורך להשתמש במערכים בעלי יותר משני מימדים, לכן, לא נרחיב עוד בנושא ונסתפק בדוגמאות אלה.