java 实现简单循环队列
package www.queue; import java.util.Arrays; /**
* 循环队列:
* 循环队列的出现是为了解决顺序队列出队列后,首指针向后移动后前面的存储过程浪费不能使用的情况。
* 根据普通的顺序队列可以知道:不管是入队还是出队操作,首尾指针都是向同一个方向移动(向后移动即+1操作)
*
* @author Administrator
*
*/
public class LoopQueue {
private int first;//首指针
private int last;//尾指针
private int size;//队列元素个数
private Object[] objects;
public LoopQueue(){
objects = new Object[10];
}
//入队
public void add(Object value){
/*if (((last+1)%10)==first) {
throw new RuntimeException("队列已满!");//如果采用指针的方式判断队满,则需要牺牲一存储单元,这里采用队内元素数量来判断
}*/
if (size>=10) {
throw new RuntimeException("队列已满!");
}
objects[last] = value;
last = (last+1)%10;//模数组长度
size++;
}
//出队
public Object poll(){
if (size<=0) {
throw new RuntimeException("队为空!");
}
Object oldValue = objects[first];
objects[first] = null;
first = (first+1)%10;
size--;
return oldValue;
}
@Override
public String toString() {
return "LoopQueue [first=" + first + ", last=" + last + ", size="
+ size + ", objects=" + Arrays.toString(objects) + "]";
} }
java 实现简单循环队列的更多相关文章
- Java多线程 阻塞队列和并发集合
转载:大关的博客 Java多线程 阻塞队列和并发集合 本章主要探讨在多线程程序中与集合相关的内容.在多线程程序中,如果使用普通集合往往会造成数据错误,甚至造成程序崩溃.Java为多线程专门提供了特有的 ...
- Java 中的队列 Queue
一.队列的定义 我们都知道队列(Queue)是一种先进先出(FIFO)的数据结构,Java中定义了java.util.Queue接口用来表示队列.Java中的Queue与List.Set属于同一个级别 ...
- java实现链队列
java实现链队列的类代码: package linkqueue; public class LinkQueue { class Element { Object elem; Element next ...
- Java服务器端消息队列实战
服务端口监听--报文接收--报文解码--业务处理--报文编码--写回客户端 从服务端与客户端成功握手并产生一个socket后,为了提高吞吐能力,接下来的事情就可以交给多线程去处理. 为了对接入的请求做 ...
- 使用goroutine+channel和java多线程+queue队列的方式开发各有什么优缺点?
我感觉很多项目使用java或者c的多线程库+线程安全的queue数据结构基本上可以实现goroutine+channel开发能达到的需求,所以请问一下为什么说golang更适合并发服务端的开发呢?使用 ...
- java中有界队列的饱和策略(reject policy)
文章目录 AbortPolicy DiscardPolicy DiscardOldestPolicy CallerRunsPolicy 使用Semaphore java中有界队列的饱和策略(rejec ...
- Java集合--阻塞队列及各种实现的解析
阻塞队列(Blocking Queue) 一.队列的定义 说的阻塞队列,就先了解下什么是队列,队列也是一种特殊的线性表结构,在线性表的基础上加了一条限制:那就是一端入队列,一端出队列,且需要遵循FIF ...
- Java:阻塞队列
Java:阻塞队列 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 1. 概述 概念 队列 队列就可以想成是一个数组,从一头进入,一头出去,排队买饭 阻塞队列 B ...
- java代码实现队列的优化
package com.voole.queun; /** * @Decription 队列 * @author TMAC-J * */ public class Queun { /** * 初始化队列 ...
随机推荐
- Unity中角度与弧度之间的相互转换
弧度数 = 角度数 * Mathf.Deg2Rad角度数 = 弧度数 * Mathf.Rad2Deg
- ThinkPHP的数据操作
查询: 具体数据的操作方法使用: 1. where()条件 $model->where(条件值); //条件值就是sql语句where后边的结果值 2. limit() 限制条数 $ ...
- array_map的使用
其结果为:
- one-class logistic regression (OCLR)
ONE-CLASS DETECTION OF CELL STATES IN TUMOR SUBTYPES Machine Learning Identifies Stemness Features A ...
- 国外(英文)——WPF较好的奇葩问题解决网站
https://stackoverflow.com/questions/6415908/c-sharp-wpf-datagrid-vertical-scroll
- LeetCode--012--整数转罗马数字(java)
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并 ...
- 7 selenium 模块
selenium 模块 一.简介 1.Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作. 2.自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接 ...
- CentOS6.8逻辑卷管理实战
CentOS6.8逻辑卷管理实战 要求:利用现有的四块磁盘,创建一个有两个PV组成的大小为80G的名为testvg的VG:要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv:挂载 ...
- 【Java】【1】List的几种排序写法
前言: 1,实现Comparator接口的类的对象作为sort的入参 2,在方法的局部使用局部类 3,基于第二种方法,局部类改为匿名类 4,使用lamdba表达式->这种形式 5,借助Compa ...
- atoi函数原型
一.atoi()函数的功能: 1.定义: 将字符串转换成整型数,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')结束转化,并将结果返回(返回转换后的整型数). ...