zoukankan      html  css  js  c++  java
  • Java中的队列:java.util.Queue接口

    队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。

    Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。
    Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。
    BlockingQueue 继承了Queue接口,用于处理多线程协同工作的情况。

    我们这里只记录最简单的java.util.Queue接口,该接口暴露的方法,根据其出错时候的行为,可以分为两组,抛出异常型和返回特殊值型

      出错抛出异常型 出错返回特殊值型
    插入(返回值为true或false) add(e) offer(e)
    移除(返回值为移除的元素) remove() poll()
    检查(返回值为获取的元素) element() peek()

    下面我们做个例子来学习一下:

    import java.util.LinkedList;
    import java.util.Queue;
    class node
    {
        node(int xparam,int yparam,int valparam)
        {
            this.x = xparam;this.y = yparam;this.value = valparam;
        }
        int x,y,value;
        public String toString()
        {
            return new StringBuilder("(")
                    .append(this.x).append(",")
                    .append(this.y).append(",")
                    .append(this.value).append(")")
                    .toString();
            
        }
    }
    public class JavaQueue {
        public static void main(String[] args) {
            Queue<node> queue=new LinkedList<node>();
            for(int i=0;i<10;i++)
            {
                queue.offer(new node(i,i,i*i));//入队
            }
            for(int j=0;j<10;j++)
            {
                System.out.println(queue.poll());//出队,按照先后顺序
            }
            
            System.out.println(queue.isEmpty());//队列现在为empty
        }
    
    }
  • 相关阅读:
    map,forEach,some,every,filter条件过滤的区别
    dangerouslySetInnerHTML空格不换行解决方案
    react项目里link语法报错Dangerous property 'dangerouslySetInnerHTML'
    如何判断两个数组是否相等相等
    react hooks的缺点(针对状态不同步和没有生命周期)
    面试聊啥
    Win10 PIN码是什么?如何设置?
    三个环形图(万一是n个呢)
    Chrome 离线加装扩展的新方法
    java安装
  • 原文地址:https://www.cnblogs.com/mingziday/p/4826539.html
Copyright © 2011-2022 走看看