用java实现队列(简易)
队列的特点:先进先出(这里改成了in和out放在一起)
----------------------------------------------------------------------------------------------------------------------
扩容
首先我们必须知道什么时候算是数组满的情况,从下图当中我们我们可以看出in代表对列的输入,out代表对列的输出
当in和out一致的时候我们会发现其实并没有满
可是数据不断的进行插入,直到 in - out = 数组的长度 则说明数组已经满了。需要扩容
那么现在扩容2倍
代码实现:
package sjjg.Queue;
/*** 队列的实现类*/
public class Queue {private int[] arr;private int front=0;//入队列的游标private int rear=0;//出队列的游标public Queue(int size){arr = new int[size];}/*** 插入数据* @param value*/public void add(int value){if (front-rear ==arr.length){System.out.println("队列满了,即将新建一个数组...");int[] brr =new int[arr.length*2];for(int i=rear;i<front;i++){brr[i]=arr[i%arr.length];arr=brr;}}arr[front % arr.length] = value;//循环完回到初始位置front++;}/*** 输出数据* @return*/public int remove(){if (rear == front){System.out.println("队列空了");return -1;}int value =arr[rear%arr.length];rear++;return value;}
}
用java实现队列(简易)相关推荐
- Java多线程编写简易飞机大战(一)
** Java多线程编写简易飞机大战(一) ** 利用多线程编写飞机大战,主要有3个关键: ①继承Thread类,重写run方法: ②线程工作代码在run方法中写: ③启动时,调用线程对象的start ...
- 用java实现一个简易自动提款机
用java实现一个简易自动提款机,且有以下要求 如何实现呢?首先,我们定义一个用户类User,同时根据要求设计好属性(本人部分命名没有使用驼峰命名法,不够规范).因为一个人可能有多个卡,卡号又不能重复 ...
- 10分钟搞定 Java 并发队列
前言 如果按照用途与特性进行粗略的划分,JUC 包中包含的工具大体可以分为 6 类: 执行者与线程池 并发队列 同步工具 并发集合 锁 原子变量 在[并发系列]中,主要讲解了 执行者与线程池,同步工具 ...
- Java阻塞队列(BlockingQueue)实现 生产者/消费者 示例
Java阻塞队列(BlockingQueue)实现 生产者/消费者 示例 本文由 TonySpark 翻译自 Javarevisited.转载请参见文章末尾的要求. Java.util.concurr ...
- 10分钟搞定 Java 并发队列好吗?好的
前言 如果按照用途与特性进行粗略的划分,JUC 包中包含的工具大体可以分为 6 类: 执行者与线程池 并发队列 同步工具 并发集合 锁 原子变量 在[并发系列]中,主要讲解了 执行者与线程池,同步工具 ...
- Java阻塞队列 LinkedBlockingDeque
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/120833494 本文出自[赵彦军的博客] Java队列 Queue Java队列 ...
- Java阻塞队列ArrayBlockingQueue和LinkedBlockingQueue实现原理分析
转载自 Java阻塞队列ArrayBlockingQueue和LinkedBlockingQueue实现原理分析 Java中的阻塞队列接口BlockingQueue继承自Queue接口. Block ...
- JSOUP 教程—— Java爬虫,简易入门,秒杀htmlparser
转载自 JSOUP 教程-- Java爬虫,简易入门,秒杀htmlparser 关于爬虫,之前一直用做第一个站的时候,记得那时候写的 爬虫 是爬sina 的数据,用的就是 htmlparser 可 ...
- java集合——队列和双端队列+优先级队列
[0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--队列和双端队列+优先级队列 的相关知识: 0.2) for full sou ...
- java 栈 队列 接口_Java队列接口
java 栈 队列 接口 介绍: 队列是FIFO(先进先出)抽象数据类型(ADT). 换句话说,按插入顺序将元素删除. java.util.Queue是Java 中的接口,并且从java.util.C ...
最新文章
- 【解题报告】【HDOJ1233】【最小生成树】还是畅通工程
- Django视图层总结
- 实验报告三c语言,C语言实验报告三
- 运行shell脚本时报错[[ : not found解决方法
- Aizu 2170 	Marked Ancestor
- js img图片加载失败,重新加载+断网检查
- day 012 生成器 与 列表推导式
- Codeforces Round #725 (Div. 3) G. Gift Set 二分
- flutter图片点击跳转_Flutter系列之Platform Channel使用详解
- OSPF不规则区域,远离Area 0的区域连通性解决方案
- 大型分布式Java项目--宜立方商城
- 2021全国大学生数学建模竞赛B题摘要及总结
- Nodejs busBoy和fs模块完成文件的上传
- 一章——系统安全及应用(应用——linux防护与群集)
- Flutter之extension
- Vetur自定义格式化代码
- 光纤入户后,光猫怎么放?
- java 获取组播地址_UDP客户端组播地址
- [AC自动机 模板]
- 【Python-5】Conditionals Control Flow
热门文章
- java基于SpringBoot+Vue+nodejs的在线外卖订餐系统Element
- ansible加密模块ansible-vault
- 新浪股票java接口,「股票历史数据接口」搜狐股票历史数据接口
- mysql运维监控工具排名_最全的监控工具盘点|无监控,不运维!
- 《高性能MySQL》——服务器性能剖析(笔记)
- 人工智能的新纪元——深度学习
- java创意绘画代码_10分钟鸿蒙应用实战开发:鸿蒙手绘板 (含源代码)
- input框 既可以手动输入亦可以进行下拉模糊查找
- Awesome Python
- python关键词对联_对联 | 我爱自然语言处理