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(sizedata.length
返回data
的元素数,这是您的数组(实例字段)。您可能正在寻找类似C的sizeof
,但据我所知,Java没有提供它
为什么需要它?因为您只存储对数组中堆上对象的引用,所以每个数组元素的大小基本上是恒定的
顺便问一下,您是否想过使用链表或内置队列实现()而不是数组?data.length
返回数组(实例字段)中数据的元素数.您可能正在寻找类似C的sizeof
,但据我所知,Java没有提供它
为什么需要它?因为您只存储对数组中堆上对象的引用,所以每个数组元素的大小基本上是恒定的
顺便问一下,您是否想过使用链表或内置队列实现()而不是数组?data.length将只返回静态数组数据的大小,因此在本例中是传递给队列构造函数的大小。至于enqueue方法,它不需要事件元素的大小,因为数据数组本身不存储元素,而是对元素的引用,并且引用是固定的ed大小,无论事件对象字段是否为(您提到的两个整数)实际上已设置。data.length将只返回静态数组数据的大小,因此在本例中是传递给队列构造函数的大小。至于enqueue方法,它不需要事件元素的大小,因为数据数组不存储元素本身,而是对元素的引用,并且引用是固定大小,不管事件对象字段(您提到的两个整数)是否已实际设置。数据
只是一个数组(具有长度),事件的大小是无关的,那么您的确切意思是什么?请查看此处有关长度
字段的解释:数据
只是一个数组(具有长度),事件的大小是不相关的,那么你的确切意思是什么?请在此处查看长度
字段的解释:好的,thx的解释。我不能使用内置队列实现,因为我没有可用的接口(移动Java应用程序)不客气。此示例实现可能也会对您有所帮助:好的,请看thx的解释。我不能使用内置队列实现,因为我没有可用的接口(移动Java应用程序)。此示例实现也可能对您有所帮助: