
int[] grades = new int[10];grades[0] = 17; ו-grades[3] = -53;, ואת הערך קוראים באותה צורה.הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על מערכים בג'אווה - Arrays» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לנושא חדש שנקרא מערכים, ארייז. ארייז זה נושא שהוא מאוד נפוץ בפיתוח תוכנה וחשוב להבין מה זה, למה צריך את זה ואיך משתמשים עם זה.
דבר ראשון, בואו נבין מה הצורך במערך ומה זה מערך. מערך בא לתאר מצב או לתת פתרון למצב שבו אנחנו צריכים מספר רב של משתנים. למעשה מערך זה רצף בזיכרון של משתנים, אבל בואו קודם כל נראה מה בעצם הצורך.
מה קורה אם אנחנו צריכים מספר משתנים בעלי מידע זהה? לדוגמה, מה אם אנחנו צריכים עשרה משתנים בשביל להכיל עשרה ציונים שונים של תלמידים?
אז כמובן אין לנו בעיה לבנות עשרה משתנים בצורה בודדת: אינט, גרייד 1, גרייד 2, גרייד 3 וכולי עד גרייד 10. זה יפתח לנו עשרה משתנים שונים בזיכרון, כל תא הוא בצורה נפרדת לגמרי, כל תא במקרה הזה הוא אינטג'ר ויש לו את השם שלו.
מה בדיוק הבעיה? איך אנחנו ניגשים לכל אחד מהתאים האלה? אנחנו צריכים לגשת לכל אחד מהתאים על ידי השם של התא כמובן. הדבר הזה יכול להיות בעל קוד שהוא קשה לתפעול, קוד מעיק ויכול להיות גם שיהיה לנו פה סתם המון שורות קוד בזיכרון, כאשר אנחנו מסוגלים להשתמש בהרבה פחות שורות קוד בשביל להשיג את אותו הדבר.
אבל מה קורה אם אנחנו צריכים בכלל 1,000 ציונים? אז אם אנחנו צריכים 1,000 ציונים זה כבר לא יהיה ממשי ללכת ולהגדיר גרייד 1 עד גרייד 2 עד גרייד 1,000 כמובן.
הפתרון מערכים. אז בואו נראה איך אנחנו בעצם יכולים לבצע את זה עם מערכים. מערך, כמו שאמרנו, זה רצף של תאים בזיכרון. לכל הרצף הזה יש רק שם אחד ויחיד, אין לו grade 1, 2, 3, 4 וכדומה, שם אחד ויחיד.
לכל תא יש אינדקס, שזה המיקום של התא. האינדקס הראשון תמיד מתחיל באפס, האינדקס האחרון תמיד יהיה גודל המערך פחות 1. איך אנחנו ניגשים לתא במערך? על ידי השם של התא בתוספת האינדקס שלו.
בואו נראה איך זה מתבצע. אם אנחנו רוצים ליצור מערך עם עשרה תאים, לדוגמה מערך ציונים, אז אנחנו פשוט רושמים את הסוג שאנחנו רוצים שכל אחד מהתאים יהיה, סוגריים מרובעים והסימן הבינלאומי למערכים, שם של כל התאים האלה, לדוגמה grades, ברוב המקרים זה יהיה, שווה האופרטור new ו-int אותו הדבר שרשום