📄 queue.java
字号:
package org.tuna.net.rdt;
import java.util.*;
class Queue
{
protected ArrayList<Object> queue;
protected Class elementClass;
/**
* 构造一个空队列,并注册添加对象的类型
*/
public Queue(Class c)
{
queue = new ArrayList<Object>();
elementClass = c;
}
// ------ Public Methods ------
/**
* 清空队列
*/
public boolean destroy()
{
int len = queue.size();
if (len == 0)
return false;
for(int i = 0; i < len; i++)
queue.remove(0);
return true;
}
/**
* 返回队首元素
*/
public Object front()
{
if (queue.size() == 0)
return null;
else
return queue.get(0);
}
/**
* 入队列
*/
public boolean inQueue(Object in)
{
//传入类型不符
if (!elementClass.getName().equals(in.getClass().getName()))
return false;
queue.add(in);
inQueueEvent();
return true;
}
/**
* 入队列时所触发的事件
*/
public void inQueueEvent() {}
/**
* 返回队列长度
*/
public int length()
{
return queue.size();
}
/**
* 出队列
*/
public boolean outQueue()
{
if (queue.size() > 0){
queue.remove(0);
outQueueEvent();
return true;
}
return false;
}
/**
* 出队列时所触发的事件
*/
public void outQueueEvent(){}
// ------ Protected Methods ------
/**
* 以数组形式返回队列中全部元素
*/
protected Object[] getAllElements()
{
if (queue.size() == 0)
return null;
Object[] r = new Object[queue.size()];
for(int i = 0; i < queue.size(); i++)
r[i] = queue.get(i);
return r;
}
/**
* 返回指定序号的元素,这里的序号是元素在队列中的序号
*/
protected Object getNumberedElement(int n)
{
if (n < 0 || n >= queue.size())
return null;
return queue.get(n);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -