Java 使用方法更改现有数组的大小
如果一个方法被传递一个对数组的引用,有没有办法改变该数组的大小,以便传递的数组引用将引用新的、更大的数组 我不完全理解这个问题。我认为这意味着我最终必须在方法中创建一个新字符串来替换旧字符串。 任何帮助都将不胜感激。这是我迄今为止的代码:Java 使用方法更改现有数组的大小,java,arrays,methods,size,Java,Arrays,Methods,Size,如果一个方法被传递一个对数组的引用,有没有办法改变该数组的大小,以便传递的数组引用将引用新的、更大的数组 我不完全理解这个问题。我认为这意味着我最终必须在方法中创建一个新字符串来替换旧字符串。 任何帮助都将不胜感激。这是我迄今为止的代码: import java.util.Arrays; public class ASize { static int num[] = {32, 34, 45, 64}; public static void main(String[] args)
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;
}
}
}
导入java.util.array;
公开课{
静态int num[]={32,34,45,64};
公共静态void main(字符串[]args){
改变大小(num);
System.out.println(Arrays.toString(num));
}
公共静态空间大小(int-bre[]{
对于(int i=0;i<8;i++){
bre[i]=1+i;
}
}
}
由于两个原因,无法执行此操作。首先,Java数组具有自创建数组以来无法更改的属性。其次,Java是一种语言,因此不能用对新数组的引用替换传递的引用。通常使用返回值来解决此任务:
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);
您需要创建一个新数组,大小为oldArray+1,然后将旧数组复制到新数组在第二种方法中创建一个新数组?我该如何复制?你的问题还不够清楚,你到底想做什么?如果你在你的方法中创建一个新数组
bre
,你必须使用num=bre
将它复制到num
末尾当你说创建一个新数组时,你是指“public static void alterThatSize(…)”方法还是在主方法中创建新数组?另外,我一直在尝试使用.copyOf()复制num[],但它不起作用,那么它是如何完成的呢?没错,如果你想在数组中使用灵活的大小,你需要使用ArrayList。我知道了。但对于实际问题,这就是答案吗?您不能更改该数组的大小,以便传入的数组引用将引用新的、更大的数组?