Java数据结构之有效队列定义与用法示例

 更新时间:2017年10月25日 08:54:20   作者:CharlinGod  
这篇文章主要介绍了Java数据结构之有效队列定义与用法,结合实例形式分析了java有效队列的数据插入、删除、判断、计算等相关操作技巧,需要的朋友可以参考下

本文实例讲述了Java数据结构之有效队列定义与用法。分享给大家供大家参考,具体如下:

/**
 * @描述 有序对列
 * 从任何位置插入数据都是有序的
 * @项目名称 Java_DataStruct
 * @包名 com.java.stack
 * @类名 Queue
 * @author chenlin
 */
public class SequeQueue {
 private long[] arr;
 private int maxSize;// 最大空间
 private int len;// 有效长度
 public SequeQueue(int size) {
  this.maxSize = size;
  this.arr = new long[maxSize];
  this.len = 0;
 }
 /**
  *插入数据
  *
  * @param value
  */
 public void insert(long value) {
  int i;
  for (i = 0; i < len; i++) {
   //得到i
   if (value > arr[i]) {
    break;
   }
  }
  //移动数据,把前面的数据往后移动一位
  for (int j = len; j > i; j--) {
   arr[j] = arr[j - 1];
  }
  arr[i] = value;
  len ++;
 }
 /**
  * 移除数据,每次移除最后一位,长度--
  * 数组从0到len - 1;
  */
 public long remove() {
  long value = arr[len - 1];
  len --;
  return value;
 }
 /**
  * 判断是否为空
  *
  * @return
  */
 public boolean isEmpty() {
  return (len == 0);
 }
 /**
  * 判断是否满了
  *
  * @return
  */
 public boolean isFull() {
  return (len == maxSize);
 }
 /**
  * 获得队列的有效长度
  *
  * @return
  */
 public int size() {
  return len;
 }
 public static void main(String[] args) {
  SequeQueue queue = new SequeQueue(8);
  queue.insert(22);
  queue.insert(33);
  queue.insert(44);
  queue.insert(534);
  queue.insert(21);
  queue.insert(55);
  System.out.println("脚本之家测试结果:");
  while (!queue.isEmpty()) {
   System.out.println(queue.remove());
  }
 }
}

运行结果:

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • Java 9 中的模块Module系统

    Java 9 中的模块Module系统

    Java 9 引入的模块是在Java包(package)的基础上又引入的一个新的抽象层,基于package这一点很重要,这里需要强调一下,接下来通过本文给大家介绍Java 9 中的模块Module系统,感兴趣的朋友一起看看吧
    2022-03-03
  • Idea springboot springCloud热加载热调试两种常用方式

    Idea springboot springCloud热加载热调试两种常用方式

    这篇文章主要介绍了Idea springboot springCloud热加载热调试常用的两种方式,在项目开发的过程中,需要修改调试的时候偶每次都需要重启项目浪费时间,下面是我整理的两种常用的两种方式,需要的朋友可以参考下
    2023-04-04
  • Java多线程及分布式爬虫架构原理解析

    Java多线程及分布式爬虫架构原理解析

    这篇文章主要介绍了Java多线程及分布式爬虫架构原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Spring项目中Ordered接口的应用之全局过滤器(GlobalFilter)的顺序控制

    Spring项目中Ordered接口的应用之全局过滤器(GlobalFilter)的顺序控制

    在Spring框架,尤其是Spring Cloud Gateway或Spring WebFlux项目中,Ordered接口扮演着重要的角色,特别是在实现全局过滤器(GlobalFilter)时,用于控制过滤器执行的优先级,下面将介绍如何在Spring项目中使用Ordered接口来管理Global Filter的执行顺序,需要的朋友可以参考下
    2024-06-06
  • java正则表达式校验日期格式实例代码

    java正则表达式校验日期格式实例代码

    如果使用得当,正则表达式是匹配各种模式的强大工具,下面这篇文章主要给大家介绍了关于java正则表达式校验日期格式的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • 使用springboot整合RateLimiter限流过程

    使用springboot整合RateLimiter限流过程

    这篇文章主要介绍了使用springboot整合RateLimiter限流过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Springboot 使用内置tomcat禁止不安全HTTP的方法

    Springboot 使用内置tomcat禁止不安全HTTP的方法

    这篇文章主要介绍了Springboot 使用内置tomcat禁止不安全HTTP的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 详谈jvm--Java中init和clinit的区别

    详谈jvm--Java中init和clinit的区别

    下面小编就为大家带来一篇详谈jvm--Java中init和clinit的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 使用java 实现mqtt两种常用方式

    使用java 实现mqtt两种常用方式

    在开发MQTT时有两种方式一种是使用Paho Java 原生库来完成,一种是使用spring boot 来完成,这篇文章主要介绍了使用java 实现mqtt两种方式,需要的朋友可以参考下
    2022-11-11
  • SpringCloud Gateway使用redis实现动态路由的方法

    SpringCloud Gateway使用redis实现动态路由的方法

    这篇文章主要介绍了SpringCloud Gateway使用redis实现动态路由的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01

最新评论