你如何返回一个解除引用的数组?

时间:2012-10-13 17:01:11

标签: java arrays return

我希望做以下事情:

public static int[] plusOneLengthFour(int[] arr) {
  return {arr[0]+1,arr[1]+1,arr[2]+1,arr[3]+1};
}

但是在编译时,我收到以下错误:

TestClass.java:5: error: illegal start of expression
        return {arr[0]+1,arr[1]+1,arr[2]+1,arr[3]+1};

这里有什么问题?

5 个答案:

答案 0 :(得分:5)

您只需要在return语句中添加new int[]即可进行编译。如果你只是从花括号开始,它不知道你想要什么。请注意,这将返回数组,而原始arr将具有相同的值。

即,

return new int[] {arr[0]+1,arr[1]+1,arr[2]+1,arr[3]+1};

答案 1 :(得分:4)

如果要修改输入数组,则无需返回任何内容:

public static void plusOneLengthFour(int[] arr) {
    arr[0]++;
    arr[1]++;
    arr[2]++;
    arr[3]++;
}

如果你想创建一个新数组,包含输入数组的前4个元素递增1,那么要使用的代码是

public static int[] plusOneLengthFour(int[] arr) {
    return new int[] {arr[0] + 1, arr[1] + 1, arr[2] + 1, arr[3] + 1};
}

答案 2 :(得分:1)

您应该使用以下语句来返回数组。

  return new int[] {arr[0] + 1, arr[1] + 1, arr[2] + 1, arr[3] + 1};

答案 3 :(得分:0)

我猜你需要返回你的数组,数组元素增加1.这是你如何做到的: -

public static void plusOneLengthFour(int[] arr) {
    for (int i = 0; i < arr.length; i++) {
        arr[i] = arr[i] + 1;
    }

}

实际上你不需要返回数组。更改将反映在原始数组中。

答案 4 :(得分:0)

您可以使您的方法更灵活

public static int[] addNumberToItems(int[] array, int valueToAdd) {
    for (int i = 0; i < array.length; i++)
        array[i] += valueToAdd;

    return array;
}

此常量返回数组的长度:

array.length