מהו מטריקס / מערך דו מימדי ב-Java?
"מטריקס היא אוסף של מספרים המסודרים למספר קבוע של שורות ועמודות." בדרך כלל מדובר במספרים ממשיים. באופן כללי, מטריצות יכולות להכיל מספרים מרוכבים אך לשם הפשטות נשתמש כאן רק במספרים שלמים. בואו נסתכל איך נראית מטריצה. הנה דוגמה למטריצה עם 4 שורות ו-4 עמודות.הכרזה ואתחל מערך דו-ממדי
הנה כמה דרכים שונות להכריז רק על גודל המערך, או לאתחל אותו מבלי להזכיר את הגודל.public class Matrices {
public static void main(String[] args) {
// declare & initialize 2D arrays for int and string
int[][] matrix1 = new int[2][2];
int matrix2[][] = new int[2][3];
//the size of matrix3 will be 4x4
int[][] matrix3 = { { 3, 2, 1, 7 },
{ 9, 11, 5, 4 },
{ 6, 0, 13, 17 },
{ 7, 21, 14, 15 } };
String[][] matrix4 = new String[2][2];
//the size of matrix5 will be 2x3
// 3 cols because at max there are 3 columns
String[][] matrix5 = { { "a", "lion", "meo" },
{ "jaguar", "hunt" } };
}
}
מעבר מערך דו-ממדי
כולנו יודעים לחצות מערכים רגילים בג'אווה. גם עבור מערכים דו מימדיים זה לא קשה. אנו משתמשים בדרך כלל בלולאות 'עבור' מקוננות לשם כך. חלק מהמתחילים עלולים לחשוב על זה כעל מושג חייזרי, אבל ברגע שתחפור בו יותר לעומק תוכל ליישם את זה עם קצת תרגול. עיין בקטע הבא. זה מציג רק את מספר העמודות התואמות לכל שורה להבנתך היסודית.public class MatrixTraversal {
public static void main(String[] args) {
int[][] matrix = new int[4][4];
for (int i = 0; i < matrix.length; i++)
{
// length returns number of rows
System.out.print("row " + i + " : ");
for (int j = 0; j < matrix[i].length; j++)
{
// here length returns # of columns corresponding to current row
System.out.print("col " + j + " ");
}
System.out.println();
}
}
}
תְפוּקָה
שורה 0: col 0 col 1 col 2 col 3 שורה 1: col 0 col 1 col 2 col 3 שורה 2: col 0 col 1 col 2 col 3 שורה 3: col 0 col 1 col 2 col 3
כיצד להדפיס מערך 2D ב-Java?
לאחר שתכיר את מעבר מערך דו-ממדי, הבה נסתכל על כמה דרכים להדפסת מערכי דו-ממד ב-Java.שימוש בלולאת "עבור" מקוננת
זוהי הדרך הבסיסית ביותר להדפיס את המטריצה ב-Java.public class MatrixTraversal {
public static void printMatrix(int matrix[][])
{
for (int i = 0; i < matrix.length; i++)
{
// length returns number of rows
for (int j = 0; j < matrix[i].length; j++)
{
// here length returns number of columns corresponding to current row
// using tabs for equal spaces, looks better aligned
// matrix[i][j] will return each element placed at row ‘i',column 'j'
System.out.print( matrix[i][j] + "\t");
}
System.out.println();
}
}
public static void main(String[] args) {
int[][] matrix = { { 3, 2, 1, 7 },
{ 9, 11, 5, 4 },
{ 6, 0, 13, 17 },
{ 7, 21, 14, 15 } };
printMatrix(matrix);
}
}
תְפוּקָה
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15
שימוש בלולאה "לכל אחד".
הנה דרך נוספת להדפיס מערכי 2D ב-Java באמצעות " לולאה קדמית ". זהו סוג מיוחד של לולאה המסופק על ידי Java, כאשר השורה int[] תעבור בלולאה דרך כל שורה במטריצה. בעוד שהמשתנה "אלמנט" יכיל כל רכיב המוצב באינדקס העמודה דרך השורה.public class MatrixTraversal {
public static void printMatrix(int matrix[][]){
for (int [] row : matrix)
{
// traverses through number of rows
for (int element : row)
{
// 'element' has current element of row index
System.out.print( element + "\t");
}
System.out.println();
}
}
public static void main(String[] args) {
int[][] matrix = { { 3, 2, 1, 7 },
{ 9, 11, 5, 4 },
{ 6, 0, 13, 17 },
{ 7, 21, 14, 15 } };
printMatrix(matrix);
}
}
תְפוּקָה
3 2 1 7 9 11 5 4 6 0 13 17 7 21 14 15
שימוש בשיטת "Arays.toString()".
שיטת Arrays.toString() ב-Java, ממירה כל פרמטר המועבר אליה כמערך בודד ומשתמשת בשיטה המובנית שלה כדי להדפיס אותו. יצרנו מערך דמה מחרוזת דו-ממדית למשחק. אותה שיטה פועלת גם עבור מערכים שלמים. אנו ממליצים לך לתרגל אותו לצורך התרגיל שלך.import java.util.Arrays;
public class MatrixTraversal {
public static void printMatrix(String matrix[][]){
for (String[] row : matrix) {
// convert each row to a String before printing
System.out.println(Arrays.toString(row));
}
}
public static void main(String[] args) {
String [][] matrix = { { "Hi, I am Karen" },
{ "I'm new to Java"},
{ "I love swimming" },
{ "sometimes I play keyboard"} };
printMatrix(matrix);
}
}
תְפוּקָה
[היי, אני קארן] [אני חדש בג'אווה] [אני אוהב לשחות] [לפעמים אני מנגן על מקלדת]
GO TO FULL VERSION