Queue接口

  1.英文

    a)         Queue 队列

    b)         Deque ,Double ender queue缩写,双向队列

  2.Queue接口

     除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(nullfalse,具体取决于操作)。插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的;在大多数实现中,插入操作不会失败。

方法摘要

boolean

add(E e)
          将指定的元素插入此队列(如果立即可行且不会违反容量限制),在成功时返回 true,如果当前没有可用的空间,则抛出
IllegalStateException。

E

element()
          获取,但是不移除此队列的头。

boolean

offer(E e)
          将指定的元素插入此队列(如果立即可行且不会违反容量限制),当使用有容量限制的队列时,此方法通常要优于 add(E),后者可能无法插入元素,而只是抛出一个异常。

E

peek()
          获取但不移除此队列的头;如果此队列为空,则返回 null。

E

poll()
          获取并移除此队列的头,如果此队列为空,则返回 null。

E

remove()
          获取并移除此队列的头。

  3.通过Queue实现类提供的方法来创建自定义堆栈 

    

package com.ahd.queue;

import java.util.ArrayDeque;

import java.util.Deque;

import java.util.Queue;

/***

 * 自定义堆栈

 * @author Administrator

 *

 */

public class MyStack<E>{

         private int size=0;

         private int cap;

         private Deque<E>deque;

         public MyStack() {

                   super();

                   deque=new ArrayDeque<E>();

         }

//public 方法里面不可以使用private ,非法语法

         public MyStack(int cap) {

                   super();

                   this.cap = cap;

                   deque=new ArrayDeque<E>();

         }

         public void setCap(int cap) {

                   this.cap = cap;

         }

         //push 添加 入栈

         public boolean push(E e){

                   if(this.deque.size()+1>cap){

                            return false;

                   }

                   return deque.offerLast(e);

         }

         //poll 移除并获取

         public E poll(){

                   return deque.pollLast();

         }

         //peek 不移除并获取

         public E peek(){

                   return deque.peekLast();

         }

         //size

         public int size(){

                   return this.deque.size();

         }

}

自定义堆栈

  4.模拟银行排序(使用队列先进先出的特点)

    

package com.ahd.queue;

import java.util.ArrayDeque;

import java.util.Queue;

public class QueueDemo {

         public static void main(String[] args) {

                   Queue<request> q=new ArrayDeque<request>();

                   for(int i=0;i<10;i++){

                            //匿名内部类不能调用外部类for的变量,用final修饰

                            final int num=i;

                            q.offer(new request(){

                                     @Override

                                     public void deposit() {

                                               // TODO Auto-generated method stub

                                               System.out.println("第"+num+"人正在办理业务,请稍后");

                                     }

                            });

                   }

                   dealwith(q);

         }

         //出队列,测试先进先出

         public static void dealwith(Queue q){

                   request res=null;

                   while(null!=(res=(request) q.poll())){

                            res.deposit();

                   }

         }

}

//定义一个接口

interface request{

         public void deposit();

}

模拟银行排序代码

Java_Queue接口的更多相关文章

  1. App开发:模拟服务器数据接口 - MockApi

    为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...

  2. 干货来袭-整套完整安全的API接口解决方案

    在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...

  3. 12306官方火车票Api接口

    2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...

  4. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  5. Java基础Map接口+Collections

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  6. java基础_集合List与Set接口

    List接口继承了Collection的方法  当然也有自己特有的方法向指定位置添加元素   add(索引,添加的元素); 移除指定索引的元素   remove(索引) 修改指定索引的元素   set ...

  7. 【WCF】自定义错误处理(IErrorHandler接口的用法)

    当被调用的服务操作发生异常时,可以直接把异常的原始内容传回给客户端.在WCF中,服务器传回客户端的异常,通常会使用 FaultException,该异常由这么几个东东组成: 1.Action:在服务调 ...

  8. PHP以接口方式实现多重继承(完全模拟)--学习笔记

     1.UML类图: 2.PHP代码: <?php /** * Created by PhpStorm. * User: andy * Date: 16-11-23 * Time: 下午7:57 ...

  9. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

随机推荐

  1. hbuilder下用plus.barcode.Barcode做二维码扫描,当二维码容器的高度设置过低时,启动扫描会发生闪退

    解决办法: 将固定高度改为百分比

  2. JAVA程序CPU 100%问题排查

    做JAVA开发的同学一定遇到过的爆表问题,看这里解决  https://www.cnblogs.com/qcloud1001/p/9773947.html   本文由净地发表于云+社区专栏 记一次Ja ...

  3. [转]SDN与OpenFlow技术简介

    http://blog.163.com/s_zhchluo/blog/static/15014708201411144727961/ 本文是2012年文章,对Openflow的发展.规范.应用和SDN ...

  4. 当GDPR来敲门,中国互联网企业该如何应对?

    本文来自 网易云社区 . 欧盟<通用数据保护条例>(General Data Protection Regulation,GDPR)已于2018年5月25日正式生效,谷歌.Facebook ...

  5. Android插件化的兼容性(下):突破Android P中灰黑名单的限制

    在Android P系统中,加入了访问私有API接口的限制.

  6. Oracle SQL调优记录

    目录 一.前言 二.注意点 三.Oracle执行计划 四.调优记录 @ 一.前言 本博客只记录工作中的一次oracle sql调优记录,因为数据量过多导致的查询缓慢,一方面是因为业务太过繁杂,关联了太 ...

  7. C语言中关键字restrict的概念,使用范围,例子

    概念: restrict,C语言中的一种类型限定符(Type Qualifiers),用于告诉编译器,对象已经被指针所引用,不能通过除该指针外所有其他直接或间接的方式修改该对象的内容. 渊源: res ...

  8. 神经网络架构PYTORCH-初相识(3W)

    who? Python是基于Torch的一种使用Python作为开发语言的开源机器学习库.主要是应用领域是在自然语言的处理和图像的识别上.它主要的开发者是Facebook人工智能研究院(FAIR)团队 ...

  9. openjtag 的硬件连接踩坑历程

    这个事情踩了不少坑,这个要记录一下: 1 代码的下载和编译按照下面的来:https://github.com/pulp-platform/pulp-debug-bridge 注意点: A 要最好使用p ...

  10. 屌炸天,Oracle 发布了一个全栈虚拟机 GraalVM,支持 Python!

    前阵子,Oracle 发布了一个黑科技 "GraalVM",号称是一个全新的通用全栈虚拟机,并具有高性能.跨语言交互等逆天特性,真有这么神奇? GraalVM 简介 GraalVM ...