جاوا میں میٹرکس / 2D سرنی کیا ہے؟
"ایک میٹرکس نمبروں کا مجموعہ ہے جو قطاروں اور کالموں کی ایک مقررہ تعداد میں ترتیب دیا گیا ہے۔" عام طور پر یہ حقیقی نمبر ہوتے ہیں۔ عام طور پر، میٹرکس پیچیدہ اعداد پر مشتمل ہو سکتا ہے لیکن سادگی کی خاطر ہم یہاں صرف پورے نمبر استعمال کریں گے۔ آئیے ایک نظر ڈالتے ہیں کہ میٹرکس کیسا لگتا ہے۔ یہاں 4 قطاروں اور 4 کالموں کے ساتھ میٹرکس کی ایک مثال ہے۔2D صف کا اعلان کریں اور شروع کریں۔
یہاں کچھ مختلف طریقے ہیں یا تو صرف صف کے سائز کا اعلان کریں، یا سائز کا ذکر کیے بغیر اسے شروع کریں۔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" } };
}
}
2D Array Traversal
ہم سب جانتے ہیں کہ جاوا میں باقاعدہ صفوں کو کیسے عبور کرنا ہے۔ 2D arrays کے لیے یہ مشکل بھی نہیں ہے۔ اس کے لیے ہم عام طور پر نیسٹڈ 'فور' لوپس استعمال کرتے ہیں۔ کچھ ابتدائی افراد اسے کچھ اجنبی تصور کے طور پر سوچ سکتے ہیں، لیکن جیسے ہی آپ اس کی گہرائی میں جائیں گے آپ اسے کچھ مشق کے ساتھ نافذ کرنے کے قابل ہو جائیں گے۔ مندرجہ ذیل ٹکڑوں پر ایک نظر ڈالیں۔ یہ صرف آپ کی مکمل تفہیم کے لیے ہر قطار کے مطابق کالموں کی تعداد دکھاتا ہے۔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 : کرنل 0 کرنل 1 کرنل 2 کرنل 3 قطار 1 : کرنل 0 کرنل 1 کرنل 2 کرنل 3 قطار 2 : کرنل 0 کرنل 1 کرنل 2 کرنل 3 قطار 3 : کرنل 0 کرنل 1 کرنل 2 کرنل 3
جاوا میں 2D سرنی کیسے پرنٹ کریں؟
2D Array traversal سے واقف ہونے کے بعد، آئیے جاوا میں 2D Arrays کو پرنٹ کرنے کے چند طریقے دیکھیں۔Nested "for" لوپ کا استعمال
یہ جاوا میں میٹرکس پرنٹ کرنے کا سب سے بنیادی طریقہ ہے۔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 اریوں کو پرنٹ کرنے کا ایک اور طریقہ یہ ہے ۔ یہ جاوا کی طرف سے فراہم کردہ ایک خاص قسم کا لوپ ہے، جہاں 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() طریقہ، اس کو پاس کردہ ہر پیرامیٹر کو ایک ہی صف کے طور پر تبدیل کرتا ہے اور اسے پرنٹ کرنے کے لیے اس کا بلٹ ان طریقہ استعمال کرتا ہے۔ ہم نے ارد گرد کھیلنے کے لیے ایک ڈمی سٹرنگ 2D سرنی بنائی ہے۔ یہی طریقہ عددی صفوں کے لیے بھی کام کرتا ہے۔ ہم آپ کو اپنی ورزش کے لیے اس پر عمل کرنے کی ترغیب دیتے ہیں۔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