Java Dynamic Array Creation

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值