java队列怎样用java代码实现一个队列

java队列  时间:2021-09-02  阅读:()

JAVA中队列和栈的区别

队列(Queue):是限定只能在表的一端进行插入和在另一端进行删除操作的线性表; 栈(Stack):是限定只能在表的一端进行插入和删除操作的线性表。

区别如下: 一、规则不同 1. 队列:先进先出(First In First Out)FIFO 2. 栈:先进后出(First In Last Out )FILO 二、对插入和删除操作的限定不同 1. 队列:只能在表的一端进行插入,并在表的另一端进行删除; 2. 栈:只能在表的一端插入和删除。

三、遍历数据速度不同 1. 队列:基于地址指针进行遍历,而且可以从头部或者尾部进行遍历,但不能同时遍历,无需开辟空间,因为在遍历的过程中不影响数据结构,所以遍历速度要快; 2. 栈:只能从顶部取数据,也就是说最先进入栈底的,需要遍历整个栈才能取出来,而且在遍历数据的同时需要为数据开辟临时空间,保持数据在遍历前的一致性。

怎么编写一个简单的java队列?

import java.util.*; public class MyQueue<T> { private LinkedList<T> list = new LinkedList<T>(); public void addLast(T v) { list.addLast(v); //队尾插入 } public T getFirst() { return list.getFirst(); //取得队受元素 } public void remove() { list.removeFirst(); //移除队首元素 } //类似功能自己扩展下 public static void main(String[] args) { MyQueue<String> mq = new MyQueue<String>(); mq.addLast("hello world"); mq.addLast("hello world2"); System.out.println(mq.getFirst()); mq.remove(); System.out.println(mq.getFirst()); } }

怎样用java代码实现一个队列

class Stack<T> { private Vector<T> v; public Stack(){ v = new Vector<T>(); } public T pop(){ if (v.size()==0) return null; return v.get(v.size()-1); } public void push(T t){ v.add(t); } public boolean isEmpty(){ return v.size()==0; } } class Queue<T>{ private Vector<T> v; public Queue(){ v = new Vector<T>(); } //入队列 public void enqueue(T t){ v.add(t); } //出队列 public T dequeue(){ if (v.size()==0) return null; return v.get(0); } public boolean isEmpty(){ return v.size() == 0; } }

用java编一个队列

自己写了个简单的实现 class Queue<E>{ private Object[] integerQueue;//用来当队列 public int tail;//队尾 public int size;//队的长度,也可以设置一个默认值,溢出时从新申请 public Queue(int size){ integerQueue=new Object[size]; this.size=size; tail=-1; } /** * 将元素插入队列 * @return 如果该元素已添加到此队列,则返回 true;否则返回 false */ public boolean offer(E e){ if(tail <size-1){ tail++; this.integerQueue[tail]=e; return true; }else{ return false; } } /** * 获取并移除此队列的头,如果此队列为空,则返回 null。

*/ public E poll(){ Object tmp; if(tail>=0){ tmp=this.integerQueue[tail]; tail--; return (E)tmp; }else{ return null; } } }

java中的队列都有哪些

常见的有: 有界队列: ArrayBlockingQueue LinkedBlockingQuene priorityBlockingQuene(具有优先级的队列) 无界队列: SynchronousQuene

怎样用java代码实现一个队列

class Stack&lt;T&gt; { private Vector&lt;T&gt; v; public Stack(){ v = new Vector&lt;T&gt;(); } public T pop(){ if (v.size()==0) return null; return v.get(v.size()-1); } public void push(T t){ v.add(t); } public boolean isEmpty(){ return v.size()==0; } } class Queue&lt;T&gt;{ private Vector&lt;T&gt; v; public Queue(){ v = new Vector&lt;T&gt;(); } //入队列 public void enqueue(T t){ v.add(t); } //出队列 public T dequeue(){ if (v.size()==0) return null; return v.get(0); } public boolean isEmpty(){ return v.size() == 0; } }

Megalayer促销:美国圣何塞CN2线路VPS月付48元起/香港VPS月付59元起/香港E3独服月付499元起

Megalayer是新晋崛起的国外服务器商,成立于2019年,一直都处于稳定发展的状态,机房目前有美国机房,香港机房,菲律宾机房。其中圣何塞包括CN2或者国际线路,Megalayer商家提供了一些VPS特价套餐,譬如15M带宽CN2线路主机最低每月48元起,基于KVM架构,支持windows或者Linux操作系统。。Megalayer技术团队行业经验丰富,分别来自于蓝汛、IBM等知名企业。Mega...

[6.18]DogYun:充100送10元,态云7折,经典云8折,独立服务器月省100元,幸运大转盘最高5折

DogYun是一家2019年成立的国人主机商,提供VPS和独立服务器租用等,数据中心包括中国香港、美国洛杉矶、日本、韩国、德国、荷兰等,其中VPS包括常规VPS(经典云)和按小时计费VPS(动态云),使用自行开发的面板和管理系统,支持自定义配置,动态云各个硬件独立按小时计费,带宽按照用户使用量计费(不使用不计费)或者购买流量包,线路也可以自行切换。目前商家发布了6.18促销方案,新购动态云7折,经...

阿里云香港 16核32G 20M 999元/月

阿里云香港配置图提速啦是成立于2012年的十分老牌的一个商家这次给大家评测的是 阿里云香港 16核32G 20M 这款产品,单单说价格上就是十分的离谱原价8631元/月的现价只要 999元 而且还有个8折循环优惠。废话不多说直接进入正题。优惠时间 2021年8月20日-2021年9月20日 优惠码 wn789 8折优惠阿里云香港BGP专线 16核32G 10M带宽 优惠购买 399元购买链接阿里云...

java队列为你推荐
路由器怎么重新设置网络路由器换了一个地方,怎么重新设置?按键精灵教程按键精灵教程光纤是什么光纤是什么antiarp360防火墙:antiarp.exe文件损坏.运行chkdsk是什么意思?怎么处理?招行信用卡还款招商信用卡怎么还款呢监控员工公司如何监控员工手机和微信监控员工监控员都干什么?硬盘分区格式化硬盘分区、格式化的主要步骤教学视频网站最好的免费教学视频在那有?sg什么意思篮球中 SF PF SG PG各是什么位置阿
vps代理 如何查询域名备案号 新通用顶级域名 lamp enom 联通c套餐 namecheap 万网优惠券 服务器怎么绑定域名 网页背景图片 论坛空间 绍兴高防 可外链相册 1g空间 最好的qq空间 台湾谷歌 如何注册阿里云邮箱 环聊 web服务器是什么 lamp什么意思 更多