首页 > 解决方案 > java实例数组不需要初始化数组大小吗?

问题描述

下面是我的代码。这是具有实例数组队列的任何抽象类。我从不在任何地方分配数组大小。但我仍然可以使用数组并且可以迭代以将数据添加到数组中。这怎么可能?

public abstract class Operations {
    int queue[];
    int head;
    int tail;

    public abstract String enqueue(int value);
    public abstract String dequeue();
    public abstract String peek();
    public abstract String delete();
    public abstract boolean isEmpty();
    public abstract boolean isFull();
    public abstract void display();
}

标签: javaarrays

解决方案


简化的变量queue只保存数组开头的内存位置的地址,或者在这种情况下null在开头

在您的代码中的某个时刻,您为其分配一个新数组(否则您将获得一个NullPointerExceptionnew int[..],然后使用它将分配所需的内存并将其分配给变量。

更新:我已经执行了 OP 的代码,并且NullPointerException在调用enqueue.

Choose option:
1. Enqueue
 2. Dequeue
 3. Peek
 4. Delete
 5. Exit
1
Enter a value to enqueue:
12
Exception in thread "main" java.lang.NullPointerException
    at test.Queue.isFull(Queue.java:16)
    at test.Queue.enqueue(Queue.java:50)
    at test.Test.main(Test.java:21)

推荐阅读