java中 return new int[0]; 的意义

/*
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,            并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

你可以按任意顺序返回答案。

*/
class Solution {
    public int[] twoSum(int[] nums, int target) {
        //用数组中的一个元素值,加上其它的元素值,看看是否等于target,已经使用过的组合就不再使用了
        for(int i = 0;i < nums.length;i++){
            for(int j = i + 1;j < nums.length;j++){
                //用一个元素值和它后面的所有元素值相加,以此类推
                if(target == (nums[i] + nums[j])){
                    return new int[]{i,j};
                }
            }
        }
        return new int[0];
    }
}

 

1.public int[] twoSum(int[] nums, int target),方法定义了返回int[](也就是int数组类型)

2.return new int[0];中new int[0]代表着创建了一个长度为0的int数组,这里与int[] arr = new int[0]进行对比可能更容易理解,后者是创建了数组并将其引用赋值给变量arr,return new int[0];而这里并没有赋值操作,而是直接返回了这个数组

3.这段代码中如果

if(target == (nums[i] + nums[j])){

 

return new int[]{i,j};

 

}

这段代码判断为true则进入if语句的执行代码,return new int[]{i,j};,也就是找到了目标值,结束方法返回目标值为数组的类型,若是if语句判断为false则不进入,直到所有循环结束都没有找到就会顺序执行,执行return new int[0],返回一个长度为0的数组,长度为0的数组也是个数组,存在引用

我知道了,谢谢各位,这个 return new int[0] ; 就是防止编译器报错,返回一个垃圾值

{}

成功了返回长度为2的数组return new int[]{i,j};

new int[0] 表示动态分配一个长度为0的int数组。

代表没找到,也不一定是个垃圾值,可以用这个值作为没找到时候的标志