Java:数组扩展并没有改变原始数组?

标签 java arrays object

我有一个问题,我应该扩展一个数组,每次创建一个具有相同结果的数组。在您告诉我只使用 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/

相关文章:

javascript - ES6 将对象数组映射到数组

c - 数组中的函数未显示正确的值?

class - 接口(interface)契约,类对象?

java - 使用 Apache Batik 从 SVG 生成 JPG

java - 如何解决 android Admob 中的无广告配置问题?

java - IntelliJ IDEA 无法识别 forEach 调用中的方法递归

ruby - 替代 Ruby 1.9 中的 Array#nitems?

javascript - 在构造函数中添加事件监听器

Javascript - 每个函数都是一个对象?

java - 自动更新平板电脑上的 Android 应用程序(即没有市场!)