Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对象的队列长度_Java - Fatal编程技术网

Java 对象的队列长度

Java 对象的队列长度,java,Java,我有以下队列类: class Queue { private Object[] data; private int numOfElements; private int head; private int tail; Queue(int size) { if (size <= 0) throw new IllegalArgumentException("Size must be greater o

我有以下队列类:

class Queue
{

    private Object[] data;
    private int numOfElements;
    private int head;
    private int tail;


    Queue(int size)
    {
        if (size <= 0)
            throw new IllegalArgumentException("Size must be greater or equals 0.");

        data = new Object[size];
        head = 0;
        tail = 0;
        numOfElements = 0;
    }

    void enqueue(Object obj)
    {
        data[tail] = obj;
        tail = (tail + 1) % data.length;

        if (numOfElements < data.length)
            numOfElements++;
    }

    Object dequeue()
    {
        if (numOfElements == 0)
            throw new EmptyQueueException();

        Object dequeuedObject = data[head];
        data[head] = null;
        head = (head + 1) % data.length;

        numOfElements--;

        return dequeuedObject;
    }
类队列
{
私有对象[]数据;
私有元素;
私人内部主管;
私人内特尾;
队列(整数大小)
{

if(size
data.length
返回
data
的元素数,这是您的数组(实例字段)。您可能正在寻找类似C的
sizeof
,但据我所知,Java没有提供它

为什么需要它?因为您只存储对数组中堆上对象的引用,所以每个数组元素的大小基本上是恒定的


顺便问一下,您是否想过使用链表或内置队列实现()而不是数组?

data.length
返回数组(实例字段)中
数据的元素数.您可能正在寻找类似C的
sizeof
,但据我所知,Java没有提供它

为什么需要它?因为您只存储对数组中堆上对象的引用,所以每个数组元素的大小基本上是恒定的


顺便问一下,您是否想过使用链表或内置队列实现()而不是数组?

data.length将只返回静态数组数据的大小,因此在本例中是传递给队列构造函数的大小。至于enqueue方法,它不需要事件元素的大小,因为数据数组本身不存储元素,而是对元素的引用,并且引用是固定的ed大小,无论事件对象字段是否为(您提到的两个整数)实际上已设置。

data.length将只返回静态数组数据的大小,因此在本例中是传递给队列构造函数的大小。至于enqueue方法,它不需要事件元素的大小,因为数据数组不存储元素本身,而是对元素的引用,并且引用是固定大小,不管事件对象字段(您提到的两个整数)是否已实际设置。

数据
只是一个数组(具有长度),事件的大小是无关的,那么您的确切意思是什么?请查看此处有关
长度
字段的解释:
数据
只是一个数组(具有长度),事件的大小是不相关的,那么你的确切意思是什么?请在此处查看
长度
字段的解释:好的,thx的解释。我不能使用内置队列实现,因为我没有可用的接口(移动Java应用程序)不客气。此示例实现可能也会对您有所帮助:好的,请看thx的解释。我不能使用内置队列实现,因为我没有可用的接口(移动Java应用程序)。此示例实现也可能对您有所帮助: