我有一个问题,我应该扩展一个数组,每次创建一个具有相同结果的数组。在您告诉我只使用 ArrayList 或 Java API 中已有的其他内容之前,我被特别指示使用我自己的代码。我尝试简单地创建一个比当前数组大一格的数组,尽管这似乎效果不太好。这是我目前所拥有的:
public static void expand(Object[] objArray) {
Object[] objArray2 = new Object[a.length + 1];
for (int i = 0; i < a.length; i++)
objArray[i] = objArray[i];
objArray = objArray2;
}
最佳答案
您无法更新函数内调用者的引用。相反,您需要返回您的 new Object[]
并在调用者中更新。另外,您可以使用 System.arraycopy()
public static Object[] expand(Object[] a) {
Object[] b = new Object[a.length + 1];
System.arraycopy(a, 0, b, 0, a.length);
return b;
}
关于Java:数组扩展并没有改变原始数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26445384/