در جاوا ، می توانید آرایه ای از آرایه ها معروف به آرایه چند بعدی تعریف کنید. قبل از یادگیری آرایه چند بعدی ، برای آشنایی با آرایه یک بعدی را ببینید.
در آن آموزش ، یاد گرفتید که آرایه ای از انواع داده های اولیه (مانند: Double ، int و غیره) ، آرایه string و آرایه اشیاء ایجاد و استفاده کنید. همچنین می توان آرایه ای از آرایه ها ایجاد کرد. مثلا،
int[][] a = new int[3][4];
در اینجا a یک آرایه دو بعدی است و حداکثر ۱۲ تا عنصر از نوع عدد صحیح را نگه داری می کند.
دقت کنید که شروع آرایه از ۰ است نه ۱ .
می توانید آرایه سه بعدی هم تعریف کنید. به عنوان مثال:
String[][][] personalInfo = new String[3][4][2];
در اینجا personalInfo یک آرایه ی سه بعدی است و حداکثر ۲۴ تا عنصر از نوع string را نگه داری می کند.
در جاوا ، اجزای یک آرایه چند بعدی نیز آرایه هستند.
اگر با C++ / C آشنا باشید ، ممکن است احساس کنید آرایه های چند بعدی در جاوا و C++ / C به روشی مشابه کار می کنند. خوب ، اینطور نیست. در جاوا ، سطر ها می توانند طول متفاوت داشته باشند.
تفاوت را در هنگام مقدار دهی اولیه مشاهده خواهید کرد.
چگونه یک آرایه ۲ بعدی را در جاوا مقدار دهی اولیه کنیم؟
در اینجا مثالی برای مقدار دهی اولیه آرایه ۲ بعدی در جاوا آورده شده است.
int[][] a = {
{۱, ۲, ۳},
{۴, ۵, ۶, ۹},
{۷},
};
همانطور که گفته شد ، هر مؤلفه آرایه a به خودی خود یک آرایه است و طول هر سطر نیز متفاوت است.
بیایید برای اثبات آن برنامه ای بنویسیم.
class MultidimensionalArray {
public static void main(String[] args) {
int[][] a = {
{۱, ۲, ۳},
{۴, ۵, ۶, ۹},
{۷},
};
System.out.println(“Length of row 1: ” + a[0].length);
System.out.println(“Length of row 2: ” + a[1].length);
System.out.println(“Length of row 3: ” + a[2].length);
}
}
خروجی
Length of row 1: 3
Length of row 2: 4
Length of row 3: 1
از آنجا که هر مؤلفه یک آرایه چند بعدی نیز یک آرایه است ([a[0] ، a[1 و [a[2 نیز آرایه هستند) ، می توانید از ویژگی length برای پیدا کردن طول هر ردیف استفاده کنید.
مثال: تمام عناصر آرایه دو بعدی را با استفاده از حلقه چاپ کنید
class MultidimensionalArray {
public static void main(String[] args) {
int[][] a = {
{۱, -۲, ۳},
{-۴, -۵, ۶, ۹},
{۷},
};
for (int i = 0; i < a.length; ++i) {
for(int j = 0; j < a[i].length; ++j) {
System.out.println(a[i][j]);
}
}
}
}
خروجی
در هر زمان ممکن بهتر است از حلقه for … each استفاده کنید. می توانید همان کار را با استفاده از حلقه for … each انجام دهید:
class MultidimensionalArray {
public static void main(String[] args) {
int[][] a = {
{۱, -۲, ۳},
{-۴, -۵, ۶, ۹},
{۷},
};
for (int[] innerArray: a) {
for(int data: innerArray) {
System.out.println(data);
}
}
}
}
خروجی
۱
-۲
۳
-۴
-۵
۶
۹
۷
چگونه می توان یک آرایه سه بعدی را در جاوا مقدار دهی اولیه کرد؟
شما می توانید آرایه سه بعدی را به روش مشابه مانند یک آرایه ۲ بعدی مقدار دهی کنید. به مثال زیر دقت کنید:
// test is a 3d array
int[][][] test = {
{
{۱, -۲, ۳},
{۲, ۳, ۴}
},
{
{-۴, -۵, ۶, ۹},
{۱},
{۲, ۳}
}
};
در اصل ، آرایه سه بعدی آرایه ای از آرایه های دو بعدی است.
شبیه به آرایه های دو بعدی ، ردیف های آرایه های سه بعدی می توانند طول متفاوت داشته باشند.
مثال: برنامه ای برای چاپ عناصر آرایه سه بعدی با استفاده از حلقه
class ThreeArray {
public static void main(String[] args) {
// test is a 3d array
int[][][] test = {
{
{۱, -۲, ۳},
{۲, ۳, ۴}
},
{
{-۴, -۵, ۶, ۹},
{۱},
{۲, ۳}
}
};
// for..each loop to iterate through elements of 3d array
for (int[][] array2D: test) {
for (int[] array1D: array2D) {
for(int item: array1D) {
System.out.println(item);
}
}
}
}
}
خروجی
۱
-۲
۳
۲
۳
۴
-۴
-۵
۶
۹
۱
۲
۳