创建大小未知的数组?

时间:2019-01-25 10:13:51

标签: java

我正在从一个文件(文件名作为命令行参数提供)中读取输入,该文件包含未知数量的整数。自定义的“ readInts”方法将读取整数并返回一个数组。我不知道从一开始就初始化数组的大小。

包含“ readInts”方法的类- https://algs4.cs.princeton.edu/code/edu/princeton/cs/algs4/In.java.html

int []whitelist;
if(args.length>0) {
    whitelist = In.readInts(args[0]);
}
Arrays.sort(whitelist);
  

由于数组的大小在开始时是未知的,我该如何处理?   如果我先创建一个大小为'x'的数组,然后将readInts的输出分配给它,会不会有内存丢失?

1 个答案:

答案 0 :(得分:3)

这是因为如果args.length==0,白名单将不会初始化。在这种情况下,Arrays.sort(whitelist);很可能会引发异常。如何防止这种情况取决于您要执行的操作,但是在没有args的情况下,您似乎根本根本不使用白名单:

if(args.length>0) {
    int [] whitelist = In.readInts(args[0]);
    Arrays.sort(whitelist);
}

或具有某种默认设置:

int []whitelist=new int[0];
if(args.length>0) {
    whitelist = In.readInts(args[0]);
}
Arrays.sort(whitelist);