Java中的空整数数组

时间:2018-08-03 06:45:16

标签: java arrays

编写一个将数组作为输入并返回2个数字的数组的函数。返回的数组包含输入中的偶数和和奇数。

如果任何输入为null,则应将其视为空数组

示例:

输入:
  [30,18,2,83,20,71]
 输出:
  [70,154]

输入:
  [14,11,10,67,41]
 输出:
  [24,119]

输入:   [36,24,-82,29,44,-3,-100,-5,49]  输出:   [-78,70]

我写的函数是

public int[] getSumOfEvensAndOdds(int[] input) {

        int x[] = input;
        int even = 0, odd = 0;
        for (int i = 0; i < x.length; i++) {
            if (x[i] % 2 == 0)
                even += x[i];
            else
                odd += x[i];
        }
        int[] ans={even, odd};
        return ans;
    }

但是我应该如何合并空数组的一部分?

6 个答案:

答案 0 :(得分:4)

首先检查input是否为null。如果是这样,请改用空数组:

int x[] = input == null ? new int[0] : input;

答案 1 :(得分:2)

  

如果任何输入为null,则应将其视为空数组

为什么不只检查null的值?

public int[] getSumOfEvensAndOdds(int[] input) {
    int even = 0, odd = 0;
    if(null != input){
        for (int i: input) {
            if (0 == i % 2){
                even += i;
            } else{
                odd += i;
            }
        }
    }
    return new int[]{even, odd};
}

答案 2 :(得分:0)

public int[] getSumOfEvensAndOdds(int[] input) {

        int x[] = input;
        int even = 0, odd = 0;
        for (int i = 0; i < x.length; i++) {
        if(x[i] != null)    //in case array contains elements which aren't null
        {
            if (x[i] % 2 == 0)
                even += x[i];
            else
                odd += x[i];
        }
        else   //in case the array has null array elements
        {
           even = 0;
           odd = 0;
        }
        int[] ans={even, odd};
        return ans;
    }

答案 3 :(得分:0)

您需要这样的东西:

public class Test {

public static int[] getSumOfEvensAndOdds(int[] input) {
    int[]   def = {0,0};

    if (input != null && input.length!=0) {
        int x[] = input;
        int even = 0, odd = 0;
        for (int i = 0; i < x.length; i++) {
            if (x[i] % 2 == 0)
                even += x[i];
            else
                odd += x[i];
        }
        int[] ans = {even, odd};
        return ans;
    }

    return def;
}

public static void main(String [ ] args){
    int[]   ar = {10,20,30,40,50,60,71,80,90,91};
    int[]   res;

    res = getSumOfEvensAndOdds(ar);
    System.out.println("Result: " + res[0] + " " + res[1]);

    int[]   ar2 = {};
    res = getSumOfEvensAndOdds(ar2);
    System.out.println("Result: " + res[0] + " " + res[1]);

    int[]   ar3 = null;
    res = getSumOfEvensAndOdds(ar3);
    System.out.println("Result: " + res[0] + " " + res[1]);
}

}

我使用input!= null来检查数组是否为空,并使用input.length!= 0来检查其大小是否为0。此外,在main方法中,我给出了三个示例。

答案 4 :(得分:0)

空数组可能像这样return new int[]{}

返回

答案 5 :(得分:-1)

您的问题只是关于数组为空。快速搜索就知道了:How can I check whether an array is null / empty?