System.out.print(sb);
}
}
SimpleObjectFIFOTest.java
public class SimpleObjectFIFOTest
extends Object {
public static void main(String[] args) {
try {
SimpleObjectFIFO fifo = new SimpleObjectFIFO(5);
fifo.printState();
fifo.add("S01");
fifo.printState();
fifo.add("S02");
fifo.printState();
fifo.add("S03");
fifo.printState();
Object obj = fifo.remove();
System.out.println("just removed obj=" + obj);
fifo.printState();
fifo.add("S04");
fifo.printState();
fifo.add("S05");
fifo.printState();
fifo.add("S06");
fifo.printState();
}
catch (InterruptedException x) {
x.printStackTrace();
}
}
}
下面再看一个更好的实现方法,此方法在上一方法上进行了修改
ObjectFIFO.java
public class ObjectFIFO
extends Object {
//声明一对象数组
private Object[] queue;
//数组的初始容量
private int capacity;
//数组的当前长度
private int size;
//要添加的位置
private int head;
//要删除的位置
private int tail;
public ObjectFIFO(int cap) {
//实例化此类,并同时传入数组容量
capacity = (cap > 0) ? cap : 1;
//势力化对象数组
queue = new Object[capacity];
//添加的位置为0
head = 0;
//删除的位置为0
tail = 0;
//内容长度为0
size = 0;
}
//得到数组的容量
public int getCapacity() {
return capacity;
}
//得到数组中当前的长度(内容)
public synchronized int getSize() {
return size;
}
//判断数组是否为空
public synchronized boolean isEmpty() {