java - 如何在运行时更改java中动态数组的值?

标签 java arrays

这是我的程序:

public class Basket {
private Item[] shops = { new Item("1",1)} ; 

public void storeItems(Item it){

        if (arraysIndex > shops.length){
            resizeArray(shops);

        }
        *shops[arraysIndex++] = {it};
        *shops[arraysIndex++] = {new Item(it.getName(),it.getPrice())};

    }

    public <T> T[] resizeArray(T[] arrayToResize){

        int newCapacity = arrayToResize.length *2;
        T[] newArray = (T[]) Array.newInstance(arrayToResize[0].getClass(), newCapacity);
        System.arraycopy(arrayToResize, 0, newArray, 0, arrayToResize.length);

        return newArray;
    }

}

在我用 * 指示的行中,我会得到这样的错误:

“数组常量只能用在初始化器中”

我不知道如何在 java 中解决这个问题,请给我一些建议。

问候

最佳答案

简单地去掉花括号:

    shops[arraysIndex++] = it;
    shops[arraysIndex++] = new Item(it.getName(),it.getPrice());

此外,这里还有一个错误:

    if (arraysIndex > shops.length){
        resizeArray(shops);
    }

由于 Java 中的数组索引从零开始,因此正确的比较是 if (arraysIndex >= shops.length) .

此外,如果您使用的是 Java 1.6+,resizeArray()可以基于 Arrays.copyOf() .

最后,你似乎做了很多 ArrayList<T> 是——为什么不简单地使用后者而不用担心重新分配等问题?

关于java - 如何在运行时更改java中动态数组的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7751100/

相关文章:

java - 将实时数据写入文件

java - 查询优化 Java - 在嵌套循环中使用查询

javascript - 如何使用本地存储中的详细信息成功登录 [JavaScript]

Android 生成没有 XML 或 R.array 的 Spinner 列表

java - 将文本文件中的数据输入动态数组对象时出现 NullPointerException

java - Java中不同类之间传递数组元素

arrays - CakePHP 中的冗余 ModelName 查找结果

java - 我想在我的枚举中创建一个方法?

java - 是否可以编写跨数据库连接查询?

java - 套接字服务器,我没有收到服务器发送的消息