集合进阶(泛型、泛型通配符、数据结构(二叉树、平衡二叉树、红黑树

一、泛型类、泛型方法、泛型接口

1、泛型概述

泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。
泛型的格式:<数据类型>
注意:泛型只能支持引用数据类型。

 

泛型的好处

1、统一数据类型。
2、把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为在编译阶段类型就能确定下来。

泛型的细节

  • 泛型中不能写基本数据类型
  • 指定泛型的具体类型后,传递数据时,可以传入该类类型或者其子类类型
  • 如果不写泛型,类型默认是0bject

2、泛型类

3、泛型方法 

4、泛型方法的练习

定义一个工具类:ListUtil
类中定义一个静态方法addAll,用来添加多个集合的元素。

5、泛型接口 

二、泛型通配符和综合练习 

1、泛型的继承和通配符

  • 泛型不具备继承性,但是数据具备继承性

 2、练习——定义一个继承类

Animal

Cat

波斯猫

狸花猫

Dog

 

泰迪

哈士奇

text类 

3、总结

二、数据结构(二叉树、二叉查找树、平衡二叉树)

1、数据结构(树)

2、数据结构(二叉查找树)

①添加节点规则:

小的左边大的右边,一样的不存

3、数据结构(二叉树)遍历方式

①前序遍历:当前节点,左子节点,右子结点


②中序遍历:左子节点,当前节点,右子结点


③后序遍历:左子节点,右子结点,当前节点


④层序遍历:一层一层的去遍历

4、数据结构(平衡二叉树)

5、数据结构(平衡二叉树)需要旋转的四种情况

①左左:一次右旋


②左右:先局部左旋,再整体右旋


③右右:一次左旋


④右左:先局部右旋,再整体左旋 

6、数据结构(平衡二叉树)小结 

  • 在平衡二叉树中,如何添加节点?

小的在左边,大的在右边,一样的不存

  • 在平衡二叉树中,如果查找单个节点?

先跟根节点对比,小的在左,大的在右,依次比较

  • 为什么要旋转?

普通二叉树和二叉查找树不需要旋转,到目前为止只有平衡二叉树才需要旋转;

红黑树也需要旋转

旋转的目的:当添加了一个结点之后,导致这棵树不平衡了,那么需要旋转让这棵树重新保持平衡

  • 旋转的触发时机?

当成功添加了一个结点之后,破坏了这个平衡,就需要进行旋转

三、数据结构(红黑树、红黑规则、添加节点处理方案详解)

红黑树增删改查的性能都很好 

1、数据结构(红黑树)

2、⭐⭐数据结构(红黑树)红黑规则

3、数据结构(红黑树)添加节点的规则

——红黑树在添加节点的时候,添加的节点默认是红色的(效率高)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/726983.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

建筑主体沉降观测规范详解

随着城市化进程的加速&#xff0c;高层建筑和大型建筑项目日益增多&#xff0c;建筑主体的沉降观测工作显得尤为重要。沉降观测是确保建筑安全稳定的关键环节&#xff0c;对于预防建筑安全事故、保障人民生命财产安全具有重要意义。本文将详细解析建筑主体沉降观测的规范和要求…

【机器学习】线性回归:从基础到实践的深度解析

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 线性回归&#xff1a;从基础到实践的深度解析引言一、线性回归基础1.1 定义与目…

Word和Excel如何快速对齐姓名

日常工作经常遇到整理参会人员名单时&#xff0c;有2字姓名、3字姓名&#xff0c;为保证文档美观&#xff0c;你是否还在一个一个空格在敲空格&#xff1f; 今天刘小生分享如何在Word和Excel中快速对齐姓名&#xff0c;快来练起来吧&#xff01; 1. Word姓名对齐 【第一步】…

看见未来社区:视频孪生技术打造智慧社区

智慧社区的建设需要创新的技术支撑。智汇云舟创新升级数字孪生为视频孪生技术&#xff0c;通过将真实世界的视频监控与数字模型实时融合&#xff0c;实现了对物理空间的实时实景动态模拟。 针对智慧社区管理业务&#xff0c;以智汇云舟视频孪生平台为支撑&#xff0c;综合承载…

一起笨笨的学C——014grep特别版

目录 前言 正文 原文&#xff1a; 要求总结&#xff1a; 一点一点来&#xff1a; grep学习&#xff1a; glob理解&#xff1a; dirent 目录函数&#xff1a; 加载日志文件&#xff1a; strstr与strcmp&#xff1a; 非首次尝试&#xff1a; 非二次 &#xff1a; 老师…

易兆微电子_嵌入式软件工程师笔试题

易先电子 嵌入式软件工程师笔试题(十七) 1.关键字 extern是什么含义, 请举例说明。 修饰符extern用在变量或者函数的声明前&#xff0c;用来说明 “ 此变量 / 函数是在别处定义的&#xff0c;要在此处引用 ”。 //main.c #include <stdio.h>int main() {extern int num…

英国牛津大学基因组学方向博士后职位

英国牛津大学基因组学方向博士后职位 牛津大学&#xff08;University of Oxford&#xff09;&#xff0c;简称“牛津”&#xff08;Oxford&#xff09;&#xff0c;位于英国牛津&#xff0c;是一所公立研究型大学&#xff0c;采用传统学院制。是罗素大学集团成员&#xff0c;被…

商超智能守护:AI监控技术在零售安全中的应用

结合思通数科大模型的图像处理、图像识别、目标检测和知识图谱技术&#xff0c;以下是详细的商超合规监测应用场景描述&#xff1a; 1. 员工仪容仪表监测&#xff1a; 利用图像识别技术&#xff0c;系统可以自动检测员工是否按照规范整理妆容、穿着工作服&#xff0c;以及是否…

管理咨询公司的五个招聘秘密

在管理咨询中&#xff0c;人是业务&#xff1b;客户支付数百万美元&#xff0c;要求管理顾问确认问题&#xff0c;并推荐解决方案。由于收入和合规性受到威胁&#xff0c;招聘错误的成本可能非常昂贵&#xff0c;一些公司更倾向于谨慎而不是效率。然而&#xff0c;在当今竞争激…

Nexus安卓木马分析报告

概述 2023年3月21日晚上&#xff0c;链安与中睿天下联合研发的监控系统检测到一种新型安卓木马。在经过睿士沙箱系统捕获样本之后&#xff0c;发现该安卓木马极有可能是原安卓网银盗号木马SOVA的变种。与此同时&#xff0c;意大利安全公司Cleafy发布了一篇题为《Nexus&#xf…

API接口对接的步骤流程?有哪些注意事项?

API接口对接自动化的实现方法&#xff1f;如何调试API接口发信&#xff1f; 在现代软件开发中&#xff0c;API接口对接已成为各个系统和应用之间进行通信和数据交换的关键技术。AokSend将详细介绍API接口对接的步骤流程&#xff0c;帮助开发者更好地理解和实现这一过程。 API…

VScode基本使用

VScode下载安装&#xff1a; Visual Studio Code - Code Editing. Redefined MinGW的下载安装&#xff1a; MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net x86是64位处理器架构&#xff0c;i686是32为处理器架构。 POSIX和Win32是两种不同的操…

Spring Cloud Gateway网关下的文档聚合(knife4j)

文章目录 引言I 服务发现自动聚合(discover)1.1 配置1.2 服务发现的路由聚合策略-数据来源1.3 编写动态路由实现类II 其他2.1 网关动态加载swagger路由和配置2.2 无法处理 lb://URI,返回503错误。2.3 SpringBoot3 解决NoResourceFoundException: No static resource favicon.i…

数据结构与算法-差分数组及应用

差分数组 差分数组&#xff1a; 其实差分数组是创建一个一个辅助数组&#xff0c;用来表示给定数组的变化&#xff0c;一般用来对数组进行区间修改的操作。 频繁操作数组区间的问题 假设我们要对一个数组进行区间操作。数组为 a {10,10, 20,20,50,… 100}。数组数据比较多。 对…

羊大师:培养儿童配得感,从自我认知开始

在儿童的成长过程中&#xff0c;配得感的培养是至关重要的。配得感&#xff0c;即孩子认为自己值得拥有美好事物和得到他人关爱的一种心理状态&#xff0c;是孩子自信心和自尊心的基石。而自我认知&#xff0c;则是培养配得感的第一步。 我们要引导孩子正确地认识自己。每个孩子…

vant组件 顶部下拉刷新和页面底部下拉获取数据

1.html部分&#xff08;顶部tab切换无&#xff0c;只有主体list部分&#xff09; <div class"yd" ><!-- yd端 --><van-pull-refresh v-model"refreshing" refresh"onRefresh"><van-listv-model"ydloading":finis…

【SpringCloud】Eureka的简单使用

本文使用的是jdk17&#xff0c;mysql8。 以下用两个服务做演示&#xff1a; 订单服务&#xff1a;提供订单ID&#xff0c;获取订单详细信息。 商品服务&#xff1a;提供商品ID&#xff0c;获取商品详细信息。 对于上篇http://t.csdnimg.cn/vcWpo 订单服务调用商品服务的时候&a…

Markdown 生成 Epub (Typora + pandoc)

文章目录 一、安装 pandoc二、Typora pandoc 导出 Pandoc 文件三、看看效果 一、安装 pandoc macOS 上使用 brew 安装 brew install pandoc其他系统可见&#xff1a;https://pandoc.org/installing.html 安装成功后查看版本 pandoc --version$ pandoc --version pandoc 2.1…

PS选不了颜色和路径描边?PS不知为何才能描边任意路径,这个办法让你秒懂

在选中路径的情况下&#xff0c;按图下操作&#xff0c;即可制作路径&#xff08;不会让你选不了颜色和路径描边&#xff09;

ArcGIS查找相同图斑、删除重复图斑

​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 这次是上次 今天分享一下&#xff0c;很重要却被大家忽略的两个工具 这两个工具不仅可以找出属性…