今天在做题的时候遇到了这个问题,首先
List<List<Integer>> results = new ArrayList<>();
if (nums == null) {
return results;
}
if (nums.length == 0) {
results.add(new ArrayList<Integer>());
return results;
}
nums是一个数组,可以看到他们的区别。
int[] array = null; 数组为空,此时array不指向任何对象;
int[] array = new array[0]; 定义一个长度为0的数组;
int[] array = new array[2]; 定义一个长度为2的数组,此时如果数组没有被初始化,默认的值为null;
一般先判断 nums 是否为空,然后再判断长度是否为0,因为可能报空指针异常。
所以如果在一行代码中要同时判断的时候需要这样写:
if(array == null || array.length == 0)
因为 || 是短路或,前面的符合了后面的就不考虑了。