使用方法更改现有数组的大小

时间:2015-05-23 03:15:23

标签: java arrays methods size

如果方法传递了对数组的引用,有没有办法改变该数组的大小,以便传入的数组引用将引用新的更大的数组?

我不完全理解这个问题。我认为这意味着我最终必须在方法中创建一个替换旧字符串的新字符串。 任何帮助将不胜感激。到目前为止,这是我的代码:

import java.util.Arrays;

public class ASize {
    static int num[] = {32, 34, 45, 64};
    public static void main(String[] args){


        alterThatSize(num);
            System.out.println(Arrays.toString(num));
    }

    public static void alterThatSize(int bre[]){
        for(int i = 0; i < 8; i++){
        bre[i] = 1 + i; 
        }

        }

}

1 个答案:

答案 0 :(得分:2)

由于两个原因,这是不可能的。首先,Java数组具有fixed length,自创建数组后无法更改。其次,Java是pass-by-value语言,因此您无法使用对新数组的引用替换传递的引用。通常使用返回值来解决此类任务:

static int[] expandArray(int[] arr, int newSize) {
    int[] newArr = new int[newSize];
    System.arraycopy(arr, 0, newArr, 0, arr.length);
    return newArr;
}

像这样使用:

num = expandArray(num, newSize);