私は次きたキュークラス:test_queue.enqueue(new Event(arg1, arg2));
キュー長
Event
オブジェクトが引数1の値に設定され、2つの整数を含んでいます。私はこのような方法のエンキューが呼び出す
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;
}
arg2。 enqueue
の内部メソッドdata.length
はどのように機能しますか? Eventオブジェクトのサイズを正しく取得するにはどうすればよいですか?
'data'は単なる配列(長さ)ですが、Eventのサイズは関係ありません。正確にはどういう意味ですか? – harold
'length'フィールドの説明はこちらをご覧ください:http://stackoverflow.com/questions/5950155/java-arrays-length – maksimov