Skip to content

Commit 71a2b36

Browse files
authored
1 parent 01258c6 commit 71a2b36

File tree

2 files changed

+69
-12
lines changed

2 files changed

+69
-12
lines changed

core-java-modules/core-java-arrays-multidimensional/src/main/java/com/baeldung/array/MultiDimensionalArray.java

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,49 @@ int[][] declarationAndThenInitialization() {
1818
return multiDimensionalArray;
1919
}
2020

21+
int[][] declarationAndThenInitializationBaseOnIndex() {
22+
int[][] multiDimensionalArray = new int[3][];
23+
multiDimensionalArray[0] = new int[2];
24+
multiDimensionalArray[1] = new int[3];
25+
multiDimensionalArray[2] = new int[4];
26+
27+
multiDimensionalArray[0][0] = 1;
28+
multiDimensionalArray[0][1] = 2;
29+
30+
multiDimensionalArray[1][0] = 3;
31+
multiDimensionalArray[1][1] = 4;
32+
multiDimensionalArray[1][2] = 5;
33+
34+
multiDimensionalArray[2][0] = 6;
35+
multiDimensionalArray[2][1] = 7;
36+
multiDimensionalArray[2][2] = 8;
37+
multiDimensionalArray[2][3] = 9;
38+
39+
return multiDimensionalArray;
40+
}
41+
2142
int[][] declarationAndThenInitializationUsingUserInputs() {
2243
int[][] multiDimensionalArray = new int[3][];
2344
multiDimensionalArray[0] = new int[2];
2445
multiDimensionalArray[1] = new int[3];
2546
multiDimensionalArray[2] = new int[4];
47+
2648
initializeElements(multiDimensionalArray);
2749
return multiDimensionalArray;
2850
}
2951

52+
int[][] declarationAndThenInitializationFirstAlternative() {
53+
int[][] multiDimensionalArray = new int[][] { new int[] { 1, 2 }, new int[] { 3, 4, 5 }, new int[] { 6, 7, 8, 9 } };
54+
55+
return multiDimensionalArray;
56+
}
57+
58+
int[][] declarationAndThenInitializationSecondAlternative() {
59+
int[][] multiDimensionalArray = { new int[] { 1, 2 }, new int[] { 3, 4, 5 }, new int[] { 6, 7, 8, 9 } };
60+
61+
return multiDimensionalArray;
62+
}
63+
3064
void initializeElements(int[][] multiDimensionalArray) {
3165
Scanner sc = new Scanner(System.in);
3266
for (int outer = 0; outer < multiDimensionalArray.length; outer++) {
@@ -48,6 +82,15 @@ void printElements(int[][] multiDimensionalArray) {
4882
}
4983
}
5084

85+
void printElementsUsingNestedForLoop(int[][] multiDimensionalArray) {
86+
for (int i = 0; i < multiDimensionalArray.length; i++) {
87+
for (int j = 0; j < multiDimensionalArray[i].length; j++) {
88+
System.out.print(multiDimensionalArray[i][j] + " ");
89+
}
90+
System.out.println();
91+
}
92+
}
93+
5194
int[] getElementAtGivenIndex(int[][] multiDimensionalArray, int index) {
5295
return multiDimensionalArray[index];
5396
}
@@ -62,8 +105,8 @@ int[] findLengthOfElements(int[][] multiDimensionalArray) {
62105

63106
Integer[] findLengthOfElements(Integer[][] multiDimensionalArray) {
64107
return Arrays.stream(multiDimensionalArray)
65-
.map(array -> array.length)
66-
.toArray(Integer[]::new);
108+
.map(array -> array.length)
109+
.toArray(Integer[]::new);
67110
}
68111

69112
int[][] copy2DArray(int[][] arrayOfArrays) {
@@ -77,7 +120,7 @@ int[][] copy2DArray(int[][] arrayOfArrays) {
77120

78121
Integer[][] copy2DArray(Integer[][] arrayOfArrays) {
79122
return Arrays.stream(arrayOfArrays)
80-
.map(array -> Arrays.copyOf(array, array.length))
81-
.toArray(Integer[][]::new);
123+
.map(array -> Arrays.copyOf(array, array.length))
124+
.toArray(Integer[][]::new);
82125
}
83126
}

core-java-modules/core-java-arrays-multidimensional/src/test/java/com/baeldung/array/MultiDimensionalArrayUnitTest.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,21 @@ public void givenMultiDimensionalArray_whenUsingArraysAPI_thenVerifyPrintedEleme
4646
ByteArrayOutputStream outContent = new ByteArrayOutputStream();
4747
System.setOut(new PrintStream(outContent));
4848
obj.printElements(multiDimensionalArr);
49-
assertEquals("[1, 2][3, 4, 5][6, 7, 8, 9]", outContent.toString().replace("\r", "").replace("\n", ""));
49+
assertEquals("[1, 2][3, 4, 5][6, 7, 8, 9]", outContent.toString()
50+
.replace("\r", "")
51+
.replace("\n", ""));
52+
System.setOut(System.out);
53+
}
54+
55+
@Test
56+
public void givenMultiDimensionalArray_whenUsingNestedForLoopToPrint_thenVerifyPrintedElements() {
57+
int[][] multiDimensionalArr = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };
58+
ByteArrayOutputStream outContent = new ByteArrayOutputStream();
59+
System.setOut(new PrintStream(outContent));
60+
obj.printElementsUsingNestedForLoop(multiDimensionalArr);
61+
assertEquals("1 2 3 4 5 6 7 8 9 ", outContent.toString()
62+
.replace("\r", "")
63+
.replace("\n", ""));
5064
System.setOut(System.out);
5165
}
5266

@@ -57,27 +71,27 @@ public void givenMultiDimensionalArray_whenUsingArraysFill_thenVerifyInitialize2
5771
multiDimensionalArr[1] = new int[3];
5872
multiDimensionalArr[2] = new int[4];
5973
obj.initialize2DArray(multiDimensionalArr);
60-
assertArrayEquals(new int[][] {{7,7}, {7,7,7}, {7,7,7,7}}, multiDimensionalArr);
74+
assertArrayEquals(new int[][] { { 7, 7 }, { 7, 7, 7 }, { 7, 7, 7, 7 } }, multiDimensionalArr);
6175
}
62-
76+
6377
@Test
6478
public void givenMultiDimensionalArray_whenUsingIteration_thenVerifyFindLengthOfElements() {
6579
int[][] multiDimensionalArr = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };
66-
assertArrayEquals(new int[]{2,3,4}, obj.findLengthOfElements(multiDimensionalArr));
80+
assertArrayEquals(new int[] { 2, 3, 4 }, obj.findLengthOfElements(multiDimensionalArr));
6781
}
68-
82+
6983
@Test
7084
public void givenMultiDimensionalArray_whenUsingArraysStream_thenVerifyFindLengthOfElements() {
7185
Integer[][] multiDimensionalArr = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };
72-
assertArrayEquals(new Integer[]{2,3,4}, obj.findLengthOfElements(multiDimensionalArr));
86+
assertArrayEquals(new Integer[] { 2, 3, 4 }, obj.findLengthOfElements(multiDimensionalArr));
7387
}
74-
88+
7589
@Test
7690
public void givenMultiDimensionalArray_whenUsingArraysCopyOf_thenVerifyCopy2DArray() {
7791
int[][] multiDimensionalArr = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };
7892
assertArrayEquals(multiDimensionalArr, obj.copy2DArray(multiDimensionalArr));
7993
}
80-
94+
8195
@Test
8296
public void givenMultiDimensionalArray_whenUsingArraysStream_thenVerifyCopy2DArray() {
8397
Integer[][] multiDimensionalArr = { { 1, 2 }, { 3, 4, 5 }, { 6, 7, 8, 9 } };

0 commit comments

Comments
 (0)