java自定义队列并附带测试用例
来源:互联网 发布:乐视直播软件 编辑:程序博客网 时间:2024/09/21 08:44
/****************************队列接口*********************************/
package myqueue;
public interface IQueue<E>
{
int size();
/**
* 入队
*/
void offer(E o);
/**
* 出队
*/
E poll();
/**
* 启动队列操作 可以认为是对队列是否为空进行判断
*/
boolean start();//
/**
* 停止队列操作 可以认为队列是否满
*/
boolean stop();//
}
/**************************************************************继承上述热接口*******************************************************/
package myqueue;
import java.io.IOException;
import util.OverFlowManager;
public class TestMyQueue implements IQueue
{
private int maxsize;
private int[] queArray;
private int front;
private int rear;
private int nitems;
public TestMyQueue(int s)
{
maxsize=s;
front=0;
rear=-1;
nitems=0;
queArray=new int[maxsize];
}
@Override
public int size()
{
return maxsize;
}
@Override
public void offer(Object o)
{
inqueue(((Integer)o).intValue());
}
public void inqueue(int o)//入队
{
if(rear==maxsize-1)
rear=-1;
queArray[++rear]=o;
nitems++;
}
public int outqueue()//出队
{
int temp=queArray[front++];
if(front==maxsize)
front=0;
nitems--;
return temp;
}
@Override
public Object poll()
{
return outqueue();
}
@Override
public boolean start()
{
return (nitems==0);
}
@Override
public boolean stop()
{
return (nitems==maxsize);
}
/**
* @param args
*/
/*public static void main(String[] args)
{
boolean iswriteFile=false;
OverFlowManager OFM=new OverFlowManager();
TestMyQueue tmq=new TestMyQueue(5);
int wait_for_insert=12;
if(tmq.stop()) //如果队满
{
try
{
OFM.writeTxt(String.valueOf(wait_for_insert));
iswriteFile=true;
}
catch (IOException e)
{
e.printStackTrace();
}
}
else //队不满
{
tmq.offer(wait_for_insert);
}
/*tmq.offer(new Integer(2));
tmq.offer(new Integer(3));
tmq.offer(new Integer(4));
tmq.offer(new Integer(5));
*/
/* while(!tmq.start()) //当队不空时
{
Object o=tmq.poll();
int m=((Integer)o).intValue();
System.out.println("出队元素是:"+m);
}
if(iswriteFile)
{
try
{
OFM.readTxt("D:\\my.txt");
} catch (IOException e)
{
e.printStackTrace();
}
iswriteFile=false;
}
}
*/
}
/************************************************测试用例********************************************************/
package test;
import myqueue.TestMyQueue;
import org.junit.Test;
import org.junit.Assert;
public class Test_Case
{
@Test
public void testMyQueue()
{
TestMyQueue tmq=new TestMyQueue(5); //这里设置
//Assert.assertTrue(tmq.stop()); //tmq.stop() return (nitems==maxsize); 此时nitem=0,而maxsize=5所以测试
System.out.println(tmq.size());
Assert.assertEquals(5, tmq.size());
}
}
/************************************************************针对队列溢出时写入TXT小操作**********************************************/
package util;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
public class OverFlowManager
{
public void writeTxt(String writecontent) throws IOException
{
writecontent+=",";
FileOutputStream fos = new FileOutputStream("D:\\my.txt",true);//true表示在文件末尾追加
fos.write(writecontent.getBytes());
fos.close();//流要及时关闭
}
public void readTxt(String file) throws IOException
{
FileInputStream fin=new FileInputStream(file);
//DataInputStream din=new DataInputStream(fin);
BufferedInputStream din=new BufferedInputStream(fin);
int n=0,m=0;
byte[] b=new byte[1024];
while((n=din.read(b))!=-1)
{
m=n;
String str=new String(b,0,n);
System.out.println("miwen:"+str);
}
}
/*public static void main(String[] args)
{
try {
new OverFlowManager(). readTxt();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*try {
writeTxt("liu");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}*/
}
- java自定义队列并附带测试用例
- 用NAT123搭建内网WCF服务并实现安卓APP访问附带站点简单的性能测试
- java自定义队列
- Rhyme/Java自定义队列
- 解决Quartz定时任务被触发两次的问题(附带:Quartz的测试用例)
- 使用java自定义jmeter的压力测试用例
- 自定义popupWindow弹出并附带底部弹出位移和渐变动画
- 关于用jspSmartUpload控件上传文件并附带参数
- java 阻塞队列自定义实现
- Java自定义实现链队列
- 剑指Offer面试题7用两个栈实现队列(附带用两个队列实现栈)
- linux自定义信号,并kill测试
- JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
- java自定义注解并解读
- 将带图片的Java工程用eclipse打包成jar,然后用exe4j将jar打包成exe,并附带jre库
- 将带图片的Java工程用eclipse打包成jar,然后用exe4j将jar打包成exe,并附带jre库
- 将带图片的Java工程用eclipse打包成jar,然后用exe4j将jar打包成exe,并附带jre库
- 将带图片的Java工程用eclipse打包成jar,然后用exe4j将jar打包成exe,并附带jre库
- Linux 下面编程提高代码执行效率的小技巧
- [leetcode-3]Longest Substring Without Repeating Characters(java)
- 设计模式--代理模式
- apache如何设置alias
- VMware8下桥接(bridged)设置
- java自定义队列并附带测试用例
- hdu5297 Y sequence(容斥原理+迭代)
- HDOJ 5293 Tree chain problem LCA+树链剖分+树形DP
- Android Studio 活动的启动模式 standard singleTop singleTask singleInstance 第一行代码
- 【学习笔记】android动画的不同实现方式以及要点
- Matlab绘图
- Java垃圾回收之Minor GC和Major GC(或称为Full GC)
- Java 线程同步 两种方法 代码
- Makefile中常用的函数