1.Enumeration容器使用:

 package com.etc;

 import java.util.Enumeration;
import java.util.Vector; /*
Enumeration容器的使用,类似于Iterator迭代器,同样用于获取数据
判断是否存在下一个元素:hasMoreElements()
获取下一个元素:nextElement()
需要借助Vector的elements()方法
Vector的线程较为安全,但是存储效率不高
*/
public class TestEnumerationDemo { public static void main(String[] args) {
Vector<String> v=new Vector<String>();
v.add("java");
v.add("python");
v.add("c++");
//类似于迭代器的使用
Enumeration<String> em=v.elements();
while(em.hasMoreElements()) {
System.out.println(em.nextElement()+" ");
}
}
}

效果截图:

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

 package com.etc;
import java.util.ArrayDeque;
import java.util.Queue;
/*
利用单向队列模拟银行存款业务,先进先出
*/
public class TestQueueDemo1 {
public static void main(String[] args) {
//构建que队列容器:实现先进先出
Queue<Request> que=new ArrayDeque<Request>();
//利用循环简单实现10个人存款的情况
for(int i=0;i<10;i++) {
final int num=i;
que.offer(new Request() {
@Override
public void Deposite() {
System.out.println("第"+num+"个人正在办理存款业务。");
}
});
}
dealWith(que);
} public static void dealWith(Queue<Request> que) {
Request req=null;
while(null!=(req=que.poll())) {
//处理业务
req.Deposite();
}
}
} //定义一个接口用于实现银行业务
interface Request{
//存款业务
void Deposite();
}

效果截图:

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

 package com.etc;

 import java.util.ArrayDeque;
import java.util.Deque;
//利用双向队列实现自定义容器栈方法实现
public class TestQueueDemo2<E> {
//定义一个容器
private Deque<E> include=new ArrayDeque<E>();
//设置容量
private int size;
//构造器
public TestQueueDemo2(int size) {
super();
this.size=size;
} //利用队列的特点实现栈的压栈
public boolean push(E e) {
//如果容器的大小比自身的容量小
if(include.size()+1>size) {
return false;
}
/*将后一个的值压入栈中成功
offerLast(E e);相当于压入队列的尾部然后返回true*/
return include.offerLast(e);
}
//弹栈,将最后一个元素拿出来
public E pop() {
return include.pollLast();
}
//获取压入栈中的最后一个元素
public E peek() {
return include.peekLast();
}
//获取当前栈容量
public int size() {
return this.include.size();
} }
 package com.etc;

 public class Demo2Test {

     public static void main(String[] args) {
//自定义栈初始化
TestQueueDemo2<String> str=new TestQueueDemo2<String>(5);
//栈头端压入数据
str.push("first");
str.push("second");
str.push("third");
System.out.println(str.size());
//遍历
String item=null;
while(null!=(item=str.pop())) {
System.out.println(item);
} } }

效果截图:

java-Enumeration,单向队列Queue及双向队列Deque等容器简单使用的更多相关文章

  1. Java中的队列Queue,优先级队列PriorityQueue

    队列Queue 在java5中新增加了java.util.Queue接口,用以支持队列的常见操作.该接口扩展了java.util.Collection接口. Queue使用时要尽量避免Collecti ...

  2. java队列Queue及阻塞队列

    java队列 接口Queue类在java.util包,定义了以下6个方法 详细查看官方文档https://docs.oracle.com/javase/7/docs/api/java/util/Que ...

  3. 映射Map、队列Queue、优先级队列PriorityQueue

    映射Map 将对象映射到其他对象的能力是解决编程问题的有效方法.例如,考虑一个程序,它被用来检查 Java 的 Random 类的随机性.理想情况下, Random 会产生完美的数字分布,但为了测试这 ...

  4. Python与数据结构[2] -> 队列/Queue[0] -> 数组队列的 Python 实现

    队列 / Queue 数组队列 数组队列是队列基于数组的一种实现,其实现类似于数组栈,是一种FIFO的线性数据结构. Queue: <--| 1 | 2 | 3 | 4 | 5 |<-- ...

  5. python队列queue 之优先级队列

    import queue as Q def PriorityQueue_int(): que = Q.PriorityQueue() que.put(10) que.put(1) que.put(5) ...

  6. C#队列Queue,利用队列处理订单

    一.什么是队列 队列(Queue)代表了一个先进先出的对象集合.当您需要对各项进行先进先出的访问时,则使用队列.当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队. 这是摘抄网上的.做了 ...

  7. Python生产者producer和consumer消费者案例写法,含有多线程,包含队列queue、JoinableQueue队列的用法

    import timeimport random import queuefrom multiprocessing import Process,Queue 案例一:def consumer(q,na ...

  8. Python_Day_05 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuqe.Queue)

    Counter(计数器) 是一个字典的子类,存储形式同样为字典,其中存储的键为字典的元素,值为元素出现的次数,在使用之前我们需要先导入文件 import collections 初始化一个计数器 im ...

  9. 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuqe.Queue)

    Python_Day_05 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuq ...

随机推荐

  1. 在vue项目中mock数据

    第一步:安装: 在命令行中执行: npm install mockjs; 第二步:定义index.js文件 我们新建一个mock文件夹,此文件夹中建一个index.js文件:在index.js中输入以 ...

  2. 根据excel表格字段生成sql语句

    根据excel表格字段生成sql语句 1.1 前言 根据excel表格字段生成sql语句主要是利用了excel的拼接函数 CONCATENATE .该实例主要以mysql脚本支持.实例需求如下:exc ...

  3. #Java学习之路——基础阶段(第四篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  4. [Swift]LeetCode680. 验证回文字符串 Ⅱ | Valid Palindrome II

    Given a non-empty string s, you may delete at most one character. Judge whether you can make it a pa ...

  5. apollo在liunx环境实战(三)

    1. apollo在liunx环境实战(三) 1.1. 准备 下载apollo源码 https://github.com/ctripcorp/apollo 1.2. 创建数据库 在自己的liunx环境 ...

  6. VirtualBox虚拟机克隆迁移步骤

    VirtualBox是常用的虚拟机管理软件,和VMware一样,用的很多.在使用过程中,有的时候需要对虚拟机进行迁移.比如我们原来的服务器,使用的win10操作系统,上面利用VirtualBox安装了 ...

  7. python判断两个文件是否相同

    此方法相当于 Linux 系统下的diff,或者是 git 下的 checkout 官方解释请看: https://docs.python.org/2/library/difflib.html #!/ ...

  8. 【Spark篇】---Spark故障解决(troubleshooting)

    一.前述 本文总结了常用的Spark的troubleshooting. 二.具体 1.shuffle file cannot find:磁盘小文件找不到. 1) connection timeout ...

  9. Python内置函数(50)——print

    英文文档: print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) Print objects to the text str ...

  10. 利用jmap和MAT等工具查看JVM运行时堆内存

    jmap JDK自带了一些工具可以帮助我们查看JVM运行的堆内存情况,常用的是jmap命令 jmap -heap <pid> 打印堆的使用情况 那么,从这个输出中我们也可以大致看出堆的结构 ...