case 1: do not assignment value in an array. Note char array automatically initialize.
// housekeeping/ArrayNew.java
// (c)2017 MindView LLC: see Copyright.txt
// We make no guarantees that this code is fit for any purpose.
// Visit http://OnJava8.com for more book information.
// Creating arrays with new
import java.util.*;
public class ArrayNew {
public static void main(String[] args) {
int[] a;
Random rand = new Random(47);
a = new int[rand.nextInt(20)];
System.out.println("length of a = " + a.length);
System.out.println(Arrays.toString(a));
// - a = new char[rand.nextInt(20)]; // cannot convert from char[] to int[]
boolean[] b = new boolean[rand.nextInt(20)];
System.out.println("length of b = " + b.length);
System.out.println(Arrays.toString(b));
char[] c = new char[rand.nextInt(20)];
System.out.println("length of c = " + c.length);
System.out.println(Arrays.toString(c));
}
}
/* Output:
length of a = 18
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
length of b = 15
[false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]
length of c = 13
[, , , , , , , , , , , , ]
*/
ps: the blank line in the comment is for easy reading.
case 2:
// housekeeping/ArrayInit.java
// (c)2017 MindView LLC: see Copyright.txt
// We make no guarantees that this code is fit for any purpose.
// Visit http://OnJava8.com for more book information.
// Array initialization
import java.util.*;
public class ArrayInit {
public static void main(String[] args) {
Integer[] a = {
1, 2, 3, // Autoboxing
};
Integer[] b =
new Integer[] {
1, 2, 3, // Autoboxing
};
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(b));
}
}
/* Output:
[1, 2, 3]
[1, 2, 3]
*/
In both cases in case 2, the final comma in the list of initializers is optional. (This feature makes for easier maintenance of long lists.)
references:
1. On Java 8 - Bruce Eckel
2. https://github.com/wangbingfeng/OnJava8-Examples/blob/master/housekeeping/ArrayNew.java
3. https://github.com/wangbingfeng/OnJava8-Examples/blob/master/housekeeping/ArrayInit.java