در جاوا ، می توانید آرایه ای از آرایه ها معروف به آرایه چند بعدی تعریف کنید. قبل از یادگیری آرایه چند بعدی ، برای آشنایی با آرایه یک بعدی از آموزش آرایه ها در جاوا دیدن کنید.
در آن آموزش ، یاد گرفتید که آرایه ای از انواع داده های اولیه (مانند: 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);
- }
- }
- }
- }
- }
خروجی
۱
-۲
۳
۲
۳
۴
-۴
-۵
۶
۹
۱
۲
۳