जावा 8 से पहले
हम Arrays.toString(array)
एक आयामी सरणी और Arrays.deepToString(array)
बहु-आयामी सरणियों को मुद्रित करने के लिए उपयोग कर सकते थे ।
जावा 8
अब हम का विकल्प मिल गया है Stream
और lambda
सरणी मुद्रित करने के लिए।
मुद्रण एक आयामी सरणी:
public static void main(String[] args) {
int[] intArray = new int[] {1, 2, 3, 4, 5};
String[] strArray = new String[] {"John", "Mary", "Bob"};
//Prior to Java 8
System.out.println(Arrays.toString(intArray));
System.out.println(Arrays.toString(strArray));
// In Java 8 we have lambda expressions
Arrays.stream(intArray).forEach(System.out::println);
Arrays.stream(strArray).forEach(System.out::println);
}
आउटपुट है:
[1, 2, 3, 4, 5]
[जॉन, मैरी, बॉब]
1
2
3
4
5
जॉन
मैरी
बॉब
मुद्रण बहुआयामी सरणी
बस जिस स्थिति में हम बहुआयामी सरणी प्रिंट करना चाहते हैं, उसका उपयोग कर सकते हैं Arrays.deepToString(array)
:
public static void main(String[] args) {
int[][] int2DArray = new int[][] { {11, 12}, { 21, 22}, {31, 32, 33} };
String[][] str2DArray = new String[][]{ {"John", "Bravo"} , {"Mary", "Lee"}, {"Bob", "Johnson"} };
//Prior to Java 8
System.out.println(Arrays.deepToString(int2DArray));
System.out.println(Arrays.deepToString(str2DArray));
// In Java 8 we have lambda expressions
Arrays.stream(int2DArray).flatMapToInt(x -> Arrays.stream(x)).forEach(System.out::println);
Arrays.stream(str2DArray).flatMap(x -> Arrays.stream(x)).forEach(System.out::println);
}
अब देखने वाली बात यह है कि वह विधि Arrays.stream(T[])
, जो int[]
हमें रिटर्न के मामले में Stream<int[]>
और फिर विधि flatMapToInt()
प्रत्येक तत्व को प्रदान की गई मैपिंग फ़ंक्शन को लागू करके निर्मित मैप की गई धारा की सामग्री के साथ धारा के प्रत्येक तत्व को मैप करती है।
आउटपुट है:
[[11, 12], [21, 22], [31, 32, 33]]
[[जॉन, ब्रावो], [मैरी, ली], [बॉब, जॉनसन]]
11
12
21
22
31
32
33
जॉन
ब्रावो
मैरी
ली
बॉब
जॉनसन