gpt4 book ai didi

java - 改变Java中数组的大小

转载 作者:行者123 更新时间:2023-12-01 07:07:00 25 4
gpt4 key购买 nike

我正在尝试更改字符串数组的大小,但我不知道还可以尝试什么,并且此方法不起作用。这是我的代码:

import java.util.Scanner;

public class test{
public static void main(String[] args){
String[] names;
names = new String[5];
for(int i=0; i<10; ++i){
addToArray(names, i, "blah");
}
System.out.println(names.length);
System.out.println("bye");
}

public static void addToArray(String[] names, int i, String name){
if (i < names.length){
names[i] = name;
}
else {
String[] temp;
temp = new String[names.length + 10];
System.arraycopy(names, 0, temp, 0, names.length);
addToArray(temp, i, name);
names = temp;
}
}
}

我的问题是,当我运行它时,它打印出数组的最终长度是 5,而实际上应该是 15。

最佳答案

问题是,您无法更改任何 (Object) 方法参数的引用,因此...

names = temp;

仅更改 addToArray 方法上下文中 names 变量的引用。您应该使用 return 语句来代替...

public static String[] addToArray(String[] names, int i, String name){
if (i < names.length){
names[i] = name;
}
else {
String[] temp;
temp = new String[names.length + 10];
System.arraycopy(names, 0, temp, 0, names.length);
names = addToArray(temp, i, name);
}
return names;
}

一旦方法返回,不要忘记维护引用...

for(int i=0; i<10; ++i){
names = addToArray(names, i, "blah");
}

关于java - 改变Java中数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21871084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com