גישה לאיברים במערך דו־ממדי
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Java של Coddy. שיעור 2 מתוך 59.
הגישה לאיברים במערך דו־ממדי דומה לגישה לאיברים במערך חד־ממדי, אבל במקום להשתמש באינדקס יחיד, משתמשים בשני אינדקסים: אחד לשורה ואחד לעמודה. זכרו שהאינדקסים ב-Java מתחילים ב-0, לכן השורה הראשונה נמצאת באינדקס 0, השורה השנייה באינדקס 1 וכן הלאה. בדומה לכך, העמודה הראשונה נמצאת באינדקס 0, העמודה השנייה באינדקס 1 וכן הלאה.
כדי לגשת לאיבר, תחילה מציינים את אינדקס השורה ולאחר מכן את אינדקס העמודה, באמצעות התחביר הבא:
arrayName[rowIndex][columnIndex]לדוגמה, כדי לגשת לאיבר בשורה השנייה (אינדקס 1) ובעמודה השלישית (אינדקס 2) של מערך דו־ממדי בשם matrix, תכתבו:
int element = matrix[1][2];פעולה זו תשייך למשתנה element את הערך של הרכיב בשורה 1, בעמודה 2.
קבלת הממדים של מערך דו־ממדי:
בדומה למערכים חד־ממדיים, אפשר להשתמש ב-.length כדי לקבל את הממדים של מערך דו־ממדי:
int[][] matrix = {
{1, 2, 3},
{4, 5, 6}
};
int numRows = matrix.length; // מקבל את מספר השורות: 2
int numCols = matrix[0].length; // מקבל את מספר העמודות: 3matrix.lengthמחזיר את מספר השורותmatrix[0].lengthמחזיר את מספר העמודות בשורה הראשונה
בדיקת גבולות:
לפני גישה לאיבר, מומלץ לבדוק אם האינדקסים תקינים:
if (rowIndex >= 0 && rowIndex < matrix.length &&
colIndex >= 0 && colIndex < matrix[0].length) {
// אפשר לגשת בבטחה אל matrix[rowIndex][colIndex]
}אתגר
קלצרו מתודה בשם getElement שמקבלת שלושה ארגומנטים:
- מערך דו־ממדי של מספרים שלמים בשם
matrix. - מספר שלם
rowIndexשמייצג את אינדקס השורה. - מספר שלם
colIndexשמייצג את אינדקס העמודה.
המתודה צריכה להחזיר את האיבר בשורה ובעמודה שצוינו בתוך matrix. אם rowIndex או colIndex חורגים מהגבולות (כלומר, קטנים מ־0 או גדולים ממספר השורות או העמודות או שווים לו), המתודה צריכה להחזיר -1.
נסו בעצמכם
// כתבו את הקוד שלכם רק בתוך המחלקה. אל תכתבו main() או קוד כלשהו מחוץ למחלקה זו.
class GetElement {
public static int getElement(int[][] matrix, int rowIndex, int colIndex) {
// כתבו את הקוד שלכם כאן
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מערכים רב־ממדיים
יסודות מערכים דו־ממדייםגישה לאיברים במערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםסיכום — מערכים דו־ממדייםחיבור וחיסור מטריצותמערכים מדורגיםמערכים תלת־ממדיים ומעבר להםתבניות נפוצות במערכים דו־ממדייםסיכום — כל מה שצריך לדעת על מערכיםתרגלו בעצמכם: קומפיילר Java אונליין