队列的特点:先进先出(这里改成了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实现队列(简易)相关推荐

  1. Java多线程编写简易飞机大战(一)

    ** Java多线程编写简易飞机大战(一) ** 利用多线程编写飞机大战,主要有3个关键: ①继承Thread类,重写run方法: ②线程工作代码在run方法中写: ③启动时,调用线程对象的start ...

  2. 用java实现一个简易自动提款机

    用java实现一个简易自动提款机,且有以下要求 如何实现呢?首先,我们定义一个用户类User,同时根据要求设计好属性(本人部分命名没有使用驼峰命名法,不够规范).因为一个人可能有多个卡,卡号又不能重复 ...

  3. 10分钟搞定 Java 并发队列

    前言 如果按照用途与特性进行粗略的划分,JUC 包中包含的工具大体可以分为 6 类: 执行者与线程池 并发队列 同步工具 并发集合 锁 原子变量 在[并发系列]中,主要讲解了 执行者与线程池,同步工具 ...

  4. Java阻塞队列(BlockingQueue)实现 生产者/消费者 示例

    Java阻塞队列(BlockingQueue)实现 生产者/消费者 示例 本文由 TonySpark 翻译自 Javarevisited.转载请参见文章末尾的要求. Java.util.concurr ...

  5. 10分钟搞定 Java 并发队列好吗?好的

    前言 如果按照用途与特性进行粗略的划分,JUC 包中包含的工具大体可以分为 6 类: 执行者与线程池 并发队列 同步工具 并发集合 锁 原子变量 在[并发系列]中,主要讲解了 执行者与线程池,同步工具 ...

  6. Java阻塞队列 LinkedBlockingDeque

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/120833494 本文出自[赵彦军的博客] Java队列 Queue Java队列 ...

  7. Java阻塞队列ArrayBlockingQueue和LinkedBlockingQueue实现原理分析

    转载自  Java阻塞队列ArrayBlockingQueue和LinkedBlockingQueue实现原理分析 Java中的阻塞队列接口BlockingQueue继承自Queue接口. Block ...

  8. JSOUP 教程—— Java爬虫,简易入门,秒杀htmlparser

    转载自 JSOUP 教程-- Java爬虫,简易入门,秒杀htmlparser 关于爬虫,之前一直用做第一个站的时候,记得那时候写的 爬虫  是爬sina 的数据,用的就是 htmlparser  可 ...

  9. java集合——队列和双端队列+优先级队列

    [0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--队列和双端队列+优先级队列 的相关知识: 0.2) for full sou ...

  10. java 栈 队列 接口_Java队列接口

    java 栈 队列 接口 介绍: 队列是FIFO(先进先出)抽象数据类型(ADT). 换句话说,按插入顺序将元素删除. java.util.Queue是Java 中的接口,并且从java.util.C ...

最新文章

  1. 【解题报告】【HDOJ1233】【最小生成树】还是畅通工程
  2. Django视图层总结
  3. 实验报告三c语言,C语言实验报告三
  4. 运行shell脚本时报错[[ : not found解决方法
  5. Aizu 2170 Marked Ancestor
  6. js img图片加载失败,重新加载+断网检查
  7. day 012 生成器 与 列表推导式
  8. Codeforces Round #725 (Div. 3) G. Gift Set 二分
  9. flutter图片点击跳转_Flutter系列之Platform Channel使用详解
  10. OSPF不规则区域,远离Area 0的区域连通性解决方案
  11. 大型分布式Java项目--宜立方商城
  12. 2021全国大学生数学建模竞赛B题摘要及总结
  13. Nodejs busBoy和fs模块完成文件的上传
  14. 一章——系统安全及应用(应用——linux防护与群集)
  15. Flutter之extension
  16. Vetur自定义格式化代码
  17. 光纤入户后,光猫怎么放?
  18. java 获取组播地址_UDP客户端组播地址
  19. [AC自动机 模板]
  20. 【Python-5】Conditionals Control Flow

热门文章

  1. java基于SpringBoot+Vue+nodejs的在线外卖订餐系统Element
  2. ansible加密模块ansible-vault
  3. 新浪股票java接口,「股票历史数据接口」搜狐股票历史数据接口
  4. mysql运维监控工具排名_最全的监控工具盘点|无监控,不运维!
  5. 《高性能MySQL》——服务器性能剖析(笔记)
  6. 人工智能的新纪元——深度学习
  7. java创意绘画代码_10分钟鸿蒙应用实战开发:鸿蒙手绘板 (含源代码)
  8. input框 既可以手动输入亦可以进行下拉模糊查找
  9. Awesome Python
  10. python关键词对联_对联 | 我爱自然语言处理