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. Egg 中 Controller 最佳实践

    得益于 JavaScript 加入的 decorator 特性,可以使我们跟 Java/C# 一样,更加直观自然的,做面向切面编程.而随着 TypeScript 的成熟,类型系统也让我们增强了信心,面 ...

  2. 【RL-TCPnet网络教程】第30章 RL-TCPnet之SNTP网络时间获取

    第30章      RL-TCPnet之SNTP网络时间获取 本章节为大家讲解RL-TCPnet的SNTP应用,学习本章节前,务必要优先学习第29章的NTP基础知识.有了这些基础知识之后,再搞本章节会 ...

  3. [Swift]LeetCode51. N皇后 | N-Queens

    The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens ...

  4. python3安装sklearn机器学习库

    安装sklearn需要的库请全部在万能仓库下载: http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy http://www.lfd.uci.edu/~go ...

  5. 了解 HTTPS,读这篇文章就够了

    今天接到个活儿,让我科普 HTTPS .讲 HTTP 我都“方”,想要通俗易懂的说完 HTTPS, 我有点“圆”.在讲什么是 HTTPS 之前,我们先来看个漫画.   △ 图片来源于阮一峰的网络日志 ...

  6. C#版 - Leetcode 504. 七进制数 - 题解

    C#版 - Leetcode 504. 七进制数 - 题解 Leetcode 504. Base 7 在线提交: https://leetcode.com/problems/base-7/ 题目描述 ...

  7. 前端笔记之HTML5&CSS3(下)2D/3D转换&animate动画

    一.2D转换(transform) CSS3中的transform转换和PS中的变换是一样的,分别有:缩放.位移.斜切.旋转 1.1 transform:scale()缩放 transform:sca ...

  8. 优雅的启动、停止、重启你的SpringBoot项目

    前言 你是如何启动.关闭你的SpringBoot项目的?还是使用java -jar xxxx.jar启动? 还在用ps -ef找到你的pid去kill你的应用吗? 让我们来看看还有什么更加优雅的一键启 ...

  9. 在.NET Core中使用简单的插件化机制

    前言 插件化,其实也并不是什么新东西了,像nopCommerce等开源项目都有类似的机制,而且功能比较完善和齐全. 相信大家都对接过不少支付方式,支付宝.微信以及各大银行或第三方的支付公司. 我们可以 ...

  10. Jenkins持续集成01—Jenkins服务搭建和部署

    一.介绍Jenkins 1.Jenkins概念 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Je ...