package cn.handly.queue;
public class SequenceQueue<T> {
//保存顺序队列中元素的当前个数
private Integer front = 0; //
private Integer rear = 0;
//保存数组的长度。
private int capacity = 10;
//定义一个数组用于保存顺序队列的元素
private Object[] elementData;
/**
* 队列初始化
*/
public SequenceQueue(){
elementData = new Object[capacity];
}
/**
* 队列添加元素
* @param element
*/
public void add(T element){
if(rear>capacity-1){
throw new IndexOutOfBoundsException("队列已满的异常");
}
elementData[rear++] = element;
}
/**
* 队列元素删除
*/
public T remove(){
// 判断非空
if(empty())
throw new IndexOutOfBoundsException("空队列异常");
T oldElement = (T)elementData[front];
elementData[++front] = null;
return oldElement;
}
/**
* 判断队列是否为空
*/
public boolean empty(){
return rear==front;
}
public String toString(){
if(empty()){
return "[]";
}else{
StringBuilder sb = new StringBuilder("[");
for(int i=front; i<rear; i++){
// 获取数组中的数据
String data = String.valueOf(elementData[i]);
if(null!=data && !"".equals(data) && !"null".equals(data))
sb.append(data + ",");
}
sb.delete(sb.length()-1, sb.length());
sb.append("]");
return sb.toString();
}
}
public static void main(String[] args){
String[] sts = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l"};
SequenceQueue sque = new SequenceQueue();
for(int i=0 ; i<sts.length; i++){
sque.add(sts[i]);
}
String result = sque.toString();
System.out.println(result);
sque.remove();
result = sque.toString();
System.out.println(result);
}
}
java 队列
最新推荐文章于 2024-09-25 10:59:43 发布