博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java-Enumeration,单向队列Queue及双向队列Deque等容器简单使用
阅读量:6034 次
发布时间:2019-06-20

本文共 3238 字,大约阅读时间需要 10 分钟。

1.Enumeration容器使用:

1 package com.etc; 2  3 import java.util.Enumeration; 4 import java.util.Vector; 5  6 /* 7  Enumeration容器的使用,类似于Iterator迭代器,同样用于获取数据 8    判断是否存在下一个元素:hasMoreElements() 9    获取下一个元素:nextElement()10    需要借助Vector的elements()方法11  Vector的线程较为安全,但是存储效率不高12  */13 public class TestEnumerationDemo {14     15     public static void main(String[] args) {16         Vector
v=new Vector
();17 v.add("java");18 v.add("python");19 v.add("c++");20 //类似于迭代器的使用21 Enumeration
em=v.elements();22 while(em.hasMoreElements()) {23 System.out.println(em.nextElement()+" ");24 }25 }26 }

效果截图:

2.单向队列Queue简单使用:

1 package com.etc; 2 import java.util.ArrayDeque; 3 import java.util.Queue; 4 /* 5   利用单向队列模拟银行存款业务,先进先出 6  */ 7 public class TestQueueDemo1 { 8     public static void main(String[] args) { 9         //构建que队列容器:实现先进先出10         Queue
que=new ArrayDeque
();11 //利用循环简单实现10个人存款的情况12 for(int i=0;i<10;i++) {13 final int num=i;14 que.offer(new Request() {15 @Override16 public void Deposite() {17 System.out.println("第"+num+"个人正在办理存款业务。");18 } 19 });20 }21 dealWith(que);22 }23 24 public static void dealWith(Queue
que) {25 Request req=null;26 while(null!=(req=que.poll())) {27 //处理业务28 req.Deposite();29 }30 }31 }32 33 //定义一个接口用于实现银行业务34 interface Request{35 //存款业务36 void Deposite();37 }

效果截图:

3.双向队列Deque简单使用:

1 package com.etc; 2  3 import java.util.ArrayDeque; 4 import java.util.Deque; 5 //利用双向队列实现自定义容器栈方法实现 6 public class TestQueueDemo2
{ 7 //定义一个容器 8 private Deque
include=new ArrayDeque
(); 9 //设置容量10 private int size;11 //构造器12 public TestQueueDemo2(int size) {13 super();14 this.size=size;15 }16 17 //利用队列的特点实现栈的压栈18 public boolean push(E e) {19 //如果容器的大小比自身的容量小20 if(include.size()+1>size) {21 return false;22 }23 /*将后一个的值压入栈中成功24 offerLast(E e);相当于压入队列的尾部然后返回true*/25 return include.offerLast(e);26 }27 //弹栈,将最后一个元素拿出来28 public E pop() {29 return include.pollLast();30 }31 //获取压入栈中的最后一个元素32 public E peek() {33 return include.peekLast();34 }35 //获取当前栈容量36 public int size() {37 return this.include.size();38 }39 40 }
1 package com.etc; 2  3 public class Demo2Test { 4  5     public static void main(String[] args) { 6         //自定义栈初始化 7         TestQueueDemo2
str=new TestQueueDemo2
(5); 8 //栈头端压入数据 9 str.push("first");10 str.push("second");11 str.push("third");12 System.out.println(str.size());13 //遍历14 String item=null;15 while(null!=(item=str.pop())) {16 System.out.println(item);17 }18 19 }20 21 }

效果截图:

 

转载于:https://www.cnblogs.com/weekstart/p/10779964.html

你可能感兴趣的文章
微信小程序初体验(上)- 腾讯ISUX社交用户体验设计成员出品
查看>>
SAP WM Physical Inventory Method ST & PZ
查看>>
一次快速的数据迁移感悟
查看>>
MySQL修改提示符
查看>>
《ELK Stack权威指南(第2版)》一3.6 Java日志
查看>>
C++流的streambuf详解及TCP流的实现
查看>>
《量化金融R语言初级教程》一2.5 协方差矩阵中的噪声
查看>>
mysql到elasticsearch数据迁移踩坑实践-Ali0th
查看>>
Python轻量级数据分析库DaPy
查看>>
beetl 和 shrio 结合
查看>>
相对/绝对路径,cd命令,mkdir/rmdir命令,rm命令
查看>>
tomcat中web.xml各配置项的意义
查看>>
Nodejs学习笔记(二):《node.js开发指南》代码中需要注意的几点
查看>>
Ztree异步加载自动展开节点
查看>>
反射操作公共成员变量
查看>>
Android热修复升级探索——代码修复冷启动方案
查看>>
学校宿舍的深夜之思考
查看>>
VB.NET 生成DBF文件
查看>>
编译安装nginx 1.9.15
查看>>
我的友情链接
查看>>