首先Java中的队列(Queue)是一种先进先出的数据结构。

 其中常见的一些基本操作与方法,包括:

  1、创建队列对象。例如:ArrayDeque、LinkedList等。

  2、入队操作。将元素添加到队列的末尾处,使用offer()方法。

  3、出队操作。从队列的头部移除并返回元素,使用poll()方法。

  4、peek()方法:查看队首元素。如果队列为空,则返回null。

  5、isEmpty()方法。用于判断队列是否为空,空则返回true。

  6、获取队列的大小,采用size()方法。

  7、清除队列内的元素,采用clear()方法。

下面采用力扣中的一道题,来展示上述的基本操作与方法。

题目:给定非空的二叉树根节点root,以数组的形式返回每一层节点的平均值。

输入:root = [3,9,20,null,null,15,7]

输出:[3.00000,14.50000,11.00000]

解释:第 0 层的平均值为 3,第 1 层的平均值为 14.5,第 2 层的平均值为 11 。因此返回 [3, 14.5, 11] 

解题思路:

class Solution {
public List<Double> averageOfLevels(TreeNode root) {
// 二叉树的话,一定是通过left right进行遍历 root.left.val root.right.val 每一层的结果sum/count
List<Double> result = new ArrayList<>();
if(root == null){
return result;
} // 采用队列入队的方式进行保存数据值 - 基本操作1、创建队列对象
Queue<TreeNode> queue = new LinkedList<>();
// - 基本操作2、入队操作
queue.offer(root);
// - 基本操作5: 判断队列是否为空,为空 -> True -> False 跳出循环
while(!queue.isEmpty()){
// - 基本操作6: 获取队列的大小
int size = queue.size(); double sum = 0.0;
for(int i=0;i<size;i++){
// - 基本操作3: 出队操作
TreeNode node = queue.poll();
sum += node.val;
// 获取对应元素的左叶子结点 + 右叶子结点
TreeNode left = node.left;
TreeNode right = node.right;
if(left != null){
queue.offer(left);
}
if(right != null){
queue.offer(right);
}
}
// 每一层 都 取平均数
result.add(sum / size);
}
return result; }
} 

Java 队列Queue的一些基本操作与概念!!!!!!!!的更多相关文章

  1. java队列Queue及阻塞队列

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

  2. java队列——queue详细分析

    Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构 Queue接口与List.Set同一级别,都是继承了Collection接口.LinkedList实现了Deque接 口.   Q ...

  3. java队列--queue详细分析

    ---恢复内容开始--- Queue:基本上一个队列就是一个先入先出(FIFO)的数据结构 Queue接口与List.Set同一级别,都是继承了Collection接口,LinkedList实现了Li ...

  4. 学习笔记之Java队列Queue中offer/add函数,poll/remove函数,peek/element函数的区别

    队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作. LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用. Java中Que ...

  5. Java队列Queue

    上个星期总结了一下synchronized相关的知识,这次将Queue相关的知识总结一下,和朋友们分享. 在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列.Java提供 ...

  6. java队列queue的我觉得很好的使用方式

    LinkedList实现了queue接口,通常使用LinkedList 其中关键两个函数:offer().poll() offer()表示“排队”----插入到队列最前,poll()表示轮到了队列最前 ...

  7. java中队列Queue的使用

    1.在java5中新增加了java.util.Queue接口,用以支持队列的常见操作.Queue接口与List.Set同一级别,都是继承了Collection接口.Queue使用时要尽量避免Colle ...

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

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

  9. Java中的队列:java.util.Queue接口

    队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作. Queue接口与List.Set同一级别,都是继承了Collection接口.Linked ...

  10. java中使用队列:java.util.Queue

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

随机推荐

  1. yolov5实战之模型剪枝

    续yolov5实战之二维码检测 目录 前沿 为什么要做轻量化 什么是剪枝 稀疏化训练 剪枝 微调 结语 模型下载 前沿   在上一篇yolov5的博客中,我们用yolov5训练了一个二维码检测器,可以 ...

  2. Kubernetes(k8s) Web-UI界面(二):部署和访问Kuboard

    目录 一.系统环境 二.前言 三.Kuboard简介 四.部署Kuboard 五.访问kuboard 六.总结 七.附加信息 一.系统环境 本文主要基于Kubernetes1.21.9和Linux操作 ...

  3. Kerberos、黄金票据与白银票据

    kerberos Kerberos是一个网络认证协议,用于验证用户和服务之间的身份,解决分布式计算环境中的身份验证问题.它使用加密技术来提供安全的身份验证,并防止网络中的身份欺骗攻击.Kerberos ...

  4. GaussDB技术解读丨高级压缩

    本文作者|华为云数据库GaussDB首席架构师 冯柯 [背景介绍] 数据压缩与关系数据库的结合,早已不是一个新鲜的话题,当前我们已经看到了各种各样数据库压缩的产品和解决方案.对于GaussDB来说,在 ...

  5. 西门子PS on eMS Standalone《导入FANUC机器人TP程序》

    导入TP程序到PDPS中 右键点击左侧项目树的 "程序" --> 点击 "创建TP程序" 打开示教器 --> 点击"SELECT" ...

  6. ubuntu 安装pip3 报错

    运行命令 sudo apt install python3-pip 报错: 有几个软件包无法下载,要不运行apt-get update 或加上--fix-missing试试 输入命令: sudo ap ...

  7. 关于在Java中计算某个数的N次方注意事项

    在实际过程中,我们会遇到计算某个数的N次方的情景,在书面上我们是可以记作 a^n ,然而在Java中我们却不能这样使用,因为在Java中,这样的写法是位运算,即 假设 A = 60, B = 13,他 ...

  8. 快速掌握Vue3:速成Vue3前端开发看这篇就够啦

    一.Vue基本概念 1.1-Vue3的优点 Vue3支持Vue2额大多数特性. 更好的支持TypeScript. 打包大小减少41%. 初次渲染快55%,更新渲染快133%. 内存减少54%. 使用p ...

  9. cdn 引入的资源需要通过 externals 排除打包哦~

    cdn 指的是通过相互连接的网络系统,使用最靠近用户的服务器将音乐.图片等资源以高效率和低成本的方式将内容传递给用户. 在 webpack 中,我们可能会将引入的第三方资源会编译成单独的文件,作为静态 ...

  10. [db2]数据库管理

    前言 db2版本:10.5 实例所有者:db2inst1 待新建数据库:ticm,授权用户:ticm/123456.(用户是系统用户) 创建数据库 建库 # create database ticm: ...