ArrayQueue的底层实现
package zy813ture;
public class MyArrayQueue1 {//双向循环数组
private Object []obj;
private int front;
private int last;
//private int MAXQSIZE;
public MyArrayQueue1() {
obj = new Object[4];
}
public boolean offer(Object element) {// 将指定的元素插入此队列
if(element==null)
throw new NullPointerException ("元素为null");
if(last==front && obj[front] !=null){ //判断此队列是否队满
return false;
}
obj[last] = element;
last = (last + 1) % obj.length;
return true;
}
public Object peek(){// 获取不移除此队列的头;如果此队列为空,则返回 null
if(last == front && obj[front] == null) //判断此队列是否为空
return null;
return obj[front];
}
public Object poll(){// 获取并移除此队列的头;如果此队列为空,则返回 null
if(last == front && obj[front] == null) //判断此队列是否为空
return null;
Object o = obj[front];//定义个o放置第一个
obj[front]=null;//移除
front=(front+1)%obj.length;//移除第一个后front变成front+1;
return o;
}
public static void main(String[] args) {
MyArrayQueue1 me= new MyArrayQueue1();
me.offer("ab1");
me.offer("ab2");
me.offer("ab3");
//System.out.println(me.peek());// ab1 空的话为null
//System.out.println(me.poll());// ab1 空的话为null
//System.out.println(me.peek());// ab2 空的话为null
System.out.println(me.peek());// ab2 空的话为null
}
}
ArrayQueue的底层实现的更多相关文章
- 一张图让你看清Java集合类(Java集合类的总结)
如今关于Java集合类的文章非常多,可是我近期看到一个非常有意思图片,基本上把Java集合的整体框架都给展现出来了.非常直观. watermark/2/text/aHR0cDovL2Jsb2cuY3N ...
- 好看的java集合类图
http://blog.csdn.net/iamzp2008/article/details/38151971?utm_source=tuicool&utm_medium=referral 现 ...
- 面试常问的ArrayQueue底层实现
public class ArrayQueue<T> extends AbstractList<T>{ //定义必要的属性,容量.数组.头指针.尾指针 private int ...
- 深入浅出Redis-redis底层数据结构(上)
1.概述 相信使用过Redis 的各位同学都很清楚,Redis 是一个基于键值对(key-value)的分布式存储系统,与Memcached类似,却优于Memcached的一个高性能的key-valu ...
- Objective-C中block的底层原理
先出2个考题: 1. 上面打印的是几,captureNum2 出去作用域后是否被销毁?为什么? 同样类型的题目: 问:打印的数字为多少? 有人会回答:mutArray是captureObject方法的 ...
- nodejs操作arduino入门(javascript操作底层硬件)
用Javascript来操作硬件早就不是一件稀奇的事情了. 所以作为一名电子专业出身的FE,我也打算尝试一下用js来驱动arduino: 要想操作这些底层硬件,肯定是需要一些工具的,我这里介绍的工具主 ...
- 支撑Java NIO 与 NodeJS的底层技术
支撑Java NIO 与 NodeJS的底层技术 众所周知在近几个版本的Java中增加了一些对Java NIO.NIO2的支持,与此同时NodeJS技术栈中最为人称道的优势之一就是其高性能IO,那么我 ...
- 介绍,介绍我的底层支持库 Net.Sz.CFramework
Net.Sz.CFramework 是我自己的底层库,是经过验证的底层库. 包含: socket tcp协议,socket http协议线程池,线程模型,任务模型,定时器模型,日志模块脚本模块一些辅 ...
- iOS - 分析JSON、XML的区别和解析方式的底层是如何实现的(延伸实现原理)
<分析JSON.XML的区别,JSON.XML解析方式的底层是如何实现的(延伸实现原理)> (一)JSON与XML的区别: (1)可读性方面:基本相同,XML的可读性比较好: (2)可扩展 ...
随机推荐
- limits.conf文件工作原理
1. limits.conf 描述 limits.conf文件实际是Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so ...
- UOJ176 新年的繁荣
题目链接 Boruvka生成树算法 \(Boruvka\)算法就是先把每个点看作一个联通块,然后不断在联通块之间找最优的边进行合并.因为每次联通块的数量最少缩小一半.所以合并次数是\(log\)的 先 ...
- 第十四篇-ImageButton控制聚焦,单击,常态三种状态的显示背景
这里先用XML设置. myselector.xml <?xml version="1.0" encoding="utf-8"?> <selec ...
- FluentScheduler定时器计划任务
http://www.cnblogs.com/lgxlsm/p/6734011.html 用了FluentScheduler后,再也比想用timer计时器了. FluentScheduler 是 .N ...
- 浅谈CSRF(Cross-site request forgery)跨站请求伪造(写的非常好)
一 CSRF是什么 CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者X ...
- 2019阿里校招测评题,光明小学完全图最短路径问题(python实现)
题目:光明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题:设计接力跑大赛的线路,你能帮助他们完成这项工作么?光明小学可以抽象成一张有N个节点的图,每两点间都有一条道路相连.光 ...
- JVM调优工具
JMap 首先要知道Java进程的pid. Windows: .. .. .. Linux: ps -ef | grep java 查看堆栈信息(jmap -heap pid) jmap -heap ...
- jquery 获取$("#id").text()里面的值 需要进行去空格去换行符操作
Jquery:$("#accuracy").val($("#accuracy").val().replace(/\ +/g,""));//去 ...
- JSP页面用<a>标签访问 Action 出错
问题: JSP页面 <a href="/crud1/crud1/add.action" >添加</a> struts.xml 中: <package ...
- shell关于文件操作
一.如何将一个十进制的整数用2进制表示出来? echo "obase=2;50" | bc 二.Linux下经常需要删除空白行,grep,sed,awk,tr等工具均可实现 gre ...