|
|
原帖由 paradise2009 于 2008-7-30 18:05 发表 ![]()
对不起。我太懂。这个FIFO的队列在设计上大体是怎么实现的呢 ?
用Vector就可以实现了:
package com.bhan;
import java.text.DecimalFormat;
import java.util.Vector;
/**
* 排号(FIFO)队列.
* @author lzan
*
*/
public class Sequence
{
/** 起始号码 */
public final static int NUM_START = 1;
/** 号码模板 */
public final DecimalFormat template = new DecimalFormat("000");
/** 队列已空*/
public final static String ERROR_SEQUENCE_EMPTY = "-1";
private int index = NUM_START;
private Vector<String> vector = new Vector<String>();
/**
* 加入队列
* @return
*/
public synchronized String add()
{
String strNum = template.format(index++);
vector.add(strNum);
return strNum;
}
/**
* 插入队列
* @param index
* @param strNum
* @return
*/
public synchronized void insert(int index, String strNum)
{
if (vector.size() <= index)
{
vector.add(strNum);
}
else
{
vector.add(index, strNum);
}
}
/**
* 取走队列的第一个元素
* @return
*/
public synchronized String remove()
{
if (vector.size() == 0)
{
return ERROR_SEQUENCE_EMPTY;
}
return vector.remove(0);
}
} |
|