Java7

news2024/11/18 0:46:33

Java7

    • (一)、集合体系
    • (二)、Collection
    • (三)、Collection的遍历方式
      • 3.1迭代器
      • 3.2增强for遍历
      • 3.3 Lambda表达式遍历
    • (四)、List
    • (五)、数据结构
      • 5.1 栈
      • 5.2 队列
      • 5.3 数组
      • 5.4 链表
      • 5.5 树
      • 5.6 红黑树
    • (六)、泛型

(一)、集合体系

单列集合:每次添加一个数据
双列集合:每次添加一对数据

集合体系结构:
在这里插入图片描述

List系列集合:添加的元素是有序、可重复、有索引
有序:存和取的顺序一致
可重复:集合中存储的元素可以重复
有索引: 可以通过索引获取所有元素

Set系列集合:添加的元素是无序、不重复、无索引的元素

(二)、Collection

Collection是单列集合的顶级接口,它的功能所有的单列集合都可以继承使用

常用方法:
在这里插入图片描述
add的返回值:如果往List系列集合添加元素,那么返回值永远是true。如果往Set系列集合添加,如果数据不存在则返回true,反之则返回false

(三)、Collection的遍历方式

3.1迭代器

lterator类,是集合专用遍历方式,不依赖索引
在这里插入图片描述
常用方法:
在这里插入图片描述

注意点:
在这里插入图片描述
如果要第二次遍历,要获取一个新的迭代器对象
如果当前位置没有元素,还要强行调用next,会报错NoSuchElementException

3.2增强for遍历

底层还是一个迭代器
所有的单列集合和数组才能使用增强for遍历

格式:
在这里插入图片描述
快速生成:集合的名字.for +回车

注意细节:
修改增强for中的变量,不会改变集合中原本的数据

3.3 Lambda表达式遍历

在这里插入图片描述
最简化方式:集合名.forEach(s ->sout(s));

(四)、List

在这里插入图片描述
使用add时,如果原来索引的位置上有元素,这个元素会自动往后移

独有的遍历方式:

普通for循环:
集合名.size 表示长度
集合名.fori
i表示索引,利用索引获取元素

列表迭代器:ListInterator
额外添加了一个方法,在遍历过程中可以添加元素(用列表迭代器的add方法)

五种遍历方式对比:
在这里插入图片描述

(五)、数据结构

计算机底层存储、组织数据的方式
8种数据结构:栈,队列,数组,链表,二叉树,二叉查找树,平衡二叉树,红黑树

5.1 栈

特点:后进先出,先进后出
进入栈模型称为 :进/压栈
离开栈模型称为 :弹/出栈
在这里插入图片描述

5.2 队列

特点:先进先出,后进后出
从后端进入队列模型的过程称为:入队列
从前端离开队列模型的过程称为:出队列
在这里插入图片描述
后端进,前端出

5.3 数组

特点:
查询速度快
删除效率低
添加效率极低

5.4 链表

分为单向链表和双向链表(结点包含前一个结点的地址)

链表中的结点都是一个独立的对象,在内存中是不连续的
链表里的每个元素称为 :结点(数据,下个结点的地址)

特点:查询慢,不管查询什么都要从头开始
增删比较快

5.5 树

在这里插入图片描述
节点里有:父节点地址,值,左子节点地址,右子节点地址
度:每一个节点的子节点数量
树高:树的总层数
根节点:最顶层的节点
根节点的左右子树

二叉树:任意节点的度<=2

二叉查找树:
在这里插入图片描述

添加规则:大的存右边,小的存左边,一样的不存
遍历方式:
前序遍历:从根节点开始,按照当前节点,左子节点,右子节点的顺序遍历
中序遍历:左子节点,当前节点,右子节点
后序遍历:左,右,当前
层序遍历:从跟节点开始,一层一层遍历

平衡二叉树:
在二叉查找树上多一个规则:任意节点左右子树高度差不超过1

通过旋转机制保持平衡:当添加完节点不平衡时才会触发

左旋:确定支点(从添加的节点开始找,第一个不平衡的点)

示例1:
在这里插入图片描述

在这里插入图片描述
示例2:
在这里插入图片描述
在这里插入图片描述

右旋:

示例1:
在这里插入图片描述
在这里插入图片描述

示例2:
在这里插入图片描述
在这里插入图片描述

四种触发旋转机制的情况:
1.左左:当根节点左子树的左子树有节点插入,导致二叉树不平衡
一次右旋

2.左右:根节点左子树的右子树有节点插入,导致二叉树不平衡
局部左旋,一次右旋

3.右右:根节点右子树的右子树有节点插入
一次左旋

4.右左:根节点右子树的左子树有节点插入
局部右旋,一次左旋

5.6 红黑树

增删改查性能都很好
自平衡的二叉查找树,每一个节点上都有储存位表示节点的颜色
每一个节点可以是红或黑,它不是高度平衡的,它的平衡通过红黑规则实现

红黑规则:
在这里插入图片描述
添加的节点默认是红色的
调整方案:
在这里插入图片描述

(六)、泛型

在这里插入图片描述
好处:
在这里插入图片描述
Java中的泛型是伪泛型,只在编译时期有效

注:如果不写泛型,默认类型是object
指定泛型类型后,传递数据时,可以传入该类类型或者其子类类型
可以写在类后面,方法上面,接口后面

泛型类:当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类
在这里插入图片描述

泛型方法:方法中形参类型不确定时
1.使用类名后面定义的泛型(所有方法都能使用)
2.在方法声明上定义自己的泛型(只有本方法能使用)
在这里插入图片描述

泛型接口:
在这里插入图片描述
使用方式1:实现类给出具体的类型
使用方式2:实现类延续泛型,创建对象时再确定

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C learning_8

猜数字游戏 猜数字游戏&#xff1a; 1.电脑会随机产生一个数 2.猜数字 a>猜大了&#xff0c;提醒猜大了&#xff0c;继续猜 b>猜小了&#xff0c;提醒猜小了&#xff0c;继续猜 c>猜对了&#xff0c;恭喜你&#xff0c;猜对了&#xff0c;游戏结束 3.玩完之后可以继续…

给httprunnermanager接口自动化测试平台加点颜色(一)

文章目录 一、背景1.1、部署过程略 二、使用过程2.1、新增接口列2.2、实现搜索效果 三、总结 一、背景 https://github.com/httprunner/HttpRunnerManager.git从github上找的接口测试平台&#xff0c;引入公司作为测试协同测试的平台&#xff0c;底层框架基于httprunner(reque…

SOLIDWORKS钣金设计需要考虑的折弯问题

设计需要考虑&#xff0c;究竟哪些是成型前加工&#xff0c;究竟哪些是成型后加工。 考虑工作制作工艺过程中&#xff0c;必须先折弯&#xff0c;后加工部分孔的情况有&#xff1a; 距离折弯边很近的圆孔&#xff0c;方孔&#xff0c;腰圆孔&#xff0c;螺纹等&#xff0c;下…

如何测试信号源或者发射机的回波损耗

信用源或者发射机的return loss测试过程 1.用网分线缆的第一步就是看线的抖动情况&#xff0c;后面还是要多注意 经过一系列排查后&#xff0c;选用两个抖动比较小的线缆&#xff0c;然后开始测试另外一台仪器。 2.检查测试仪器的输出功率&#xff0c;见图1 打开信号源或者发射…

项目管理-项目经理的5种权力

1、项目团队&#xff1a;是执行项目工作&#xff0c;以实现项目目标的一组人员&#xff0c;由为了完成项目而承担不同角色与职责的人员组成。 项目团队成员可能具备不同的技能&#xff0c;可能是全职的或兼职的&#xff0c;也可能随项目进展而增加或减少。尽管项目团队成员被分…

Mysql列的类型定义(二进制类型)

文章目录 前言一、类型图二、类型 1.BINARY和VARBINARY2.BIT类型3.BLOB类型三、实战建议总结 前言 二进制数据和文本数据在mysql 中的最大区别在于&#xff1a; 二进制类型存储原始的二进制数据(如图片&#xff0c;视频&#xff0c;exe文件等)。文本类型(TEXT)用来存储字符字…

【13】SCI易中期刊推荐——计算机工程 | 电子与电气(中科院4区)

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨ 📚📚>>>人工智能 | 计算机视觉…

【嵌入式】HC32F定时器PWM输出+PAC芯片实现模拟DA输出

目录 一 项目背景 二 原理说明 三 设计实现——定时器初始化 四 设计实现——PWM输出 五 梳理总结 一 项目背景 目前使用了TI的DAC芯片DAC7311&#xff0c;将MCU的4-20/0-20数据转化电压信号&#xff0c;经由一系列电路&#xff0c;最终输出4-20/0-20mA电流输出。 但是限于…

执行composer update报错(Segmentation fault php “${dir}/composer.phar“ “$@“)

在php项目中执行composer update&#xff0c;出现如图报错 可在php.ini文件中开启xdebug扩展&#xff0c;即可更新成功

(数字图像处理MATLAB+Python)第六章图像平滑-第二节:频域平滑滤波

文章目录 一&#xff1a;理想低通滤波&#xff08;1&#xff09;概述&#xff08;2&#xff09;程序 二&#xff1a;巴特沃斯低通滤波&#xff08;1&#xff09;概述&#xff08;2&#xff09;程序 三&#xff1a;指数低通滤波&#xff08;1&#xff09;概述&#xff08;2&…

Day1_vue集成elementUI主体布局

本次&#xff0c;将从0开始带你手撸一套SpringBootVue后台管理系统 从前端到后端&#xff0c;手把手搭建&#xff0c;方便学习从0学会基础实战&#xff01;&#xff01;&#xff01; 目录 软件版本 前端开发环境安装&#xff1a; vue-cli安装 : npm设置淘宝镜像加速: 创建v…

vue2+vue3——1~35

vue2vue3 尚硅谷vue2vue2 课程简介【02:24】vue2 Vue简介【17:59】vue2 Vue官网使用指南【14:07】vue2 搭建Vue开发环境【13:54】vue2 Hello小案例【22:25】了解&#xff1a; 不常用常用&#xff1a;id 更常用 简单class 差值总结vue 实例vue 模板 &#xff1a; 先 取 &#xf…

【香橙派+DHT11】香橙派(全志H616)+ DHT11温湿度传感器的驱动教程

目录 一、前言产品概述特点数据传送逻辑DHT11通信时序 二、代码GPIO初始化起始信号读取数据整体代码执行结果 一、前言 最近写DHT11的代码到香橙派&#xff08;全志H616&#xff09;上&#xff0c;发现网上案例基本上都是树莓派DHT11的居多&#xff0c;香橙派的少&#xff0c;…

Linux进程通信:无名管道

进程通信目的&#xff1a; &#xff08;1&#xff09;数据传输&#xff1a;进程间数据传输&#xff1b; &#xff08;2&#xff09;通知事件&#xff1a;一个进程向另一个或一组进程发送消息&#xff0c;通知某个事件的发生&#xff08;如子进程终止时需通知父进程&#xff0…

使用Lim测试平台快速完成批量造数

一、前言 在我们平时的测试过程中&#xff0c;经常遇到需要造大量数据的情况&#xff0c;比如&#xff1a;测试分页功能&#xff0c;性能压测、数据准备等。 这时我们可以通过写脚本或jmeter这类的工具来实现&#xff0c;但这些方式在团队协作的时候并不友好&#xff0c;当别人…

MySQL 函数和运算符

文章目录 一、MySQL 函数二、MySQL 运算符总结 一、MySQL 函数 MySQL 有很多内置的函数&#xff0c;以下列出了这些函数的说明。 二、MySQL 运算符 算术运算符 比较运算符 逻辑运算符 位运算符算术运算符 MySQL 支持的算术运算符包括: 除法运算和模运算中&#xf…

(2)elasticsearch环境搭建(win10)

安装jdk 版本选择&#xff1a;最好是java 8、java11或者java14 jdk兼容性&#xff1a;https://www.elastic.co/cn/support/matrix#matrix_jvm 操作系统兼容性&#xff1a;https://www.elastic.co/cn/support/matrix 自身兼容性&#xff1a;https://www.elastic.co/cn/suppo…

Linux下版本控制器(SVN) -服务器端环境搭建步骤

文章目录 进阶知识-Linux下版本控制器(SVN)4、服务器端环境搭建步骤4.1 安装服务器端程序4.2 验证是否安装成功4.3 创建并配置版本库4.4 配置 SVN对应的服务4.5 启动 SVN服务 本人其他相关文章链接 进阶知识-Linux下版本控制器(SVN) 4、服务器端环境搭建步骤 4.1 安装服务器端…

AD7356_SPI驱动程序设计_5MSPS_Verilog

好久没动手了&#xff0c;使用Verilog编写一个AD7356的SPI驱动程序。 AD7356是一个双通道、12位、低功耗的ADC。最高采样速率可达5MSPS&#xff0c;全功率输入带宽为110MHz。AD7356的引脚图如下。 SPI的时序图如下&#xff0c;为了使单通道的采样速率达到最高的5MSPS&#xff…

mac m1的docker nacos2.0.3访问宿主机器的mysql

一、环境介绍&#xff1a; 我的mac系统&#xff1a;m1芯片 macOs Ventura 13.1 我的docker版本&#xff1a;v20.10.8 本机msyql&#xff1a;8.0.25 端口&#xff1a;3306。 mysql版本查询脚本&#xff1a;select version() from dual; 二、准备安装nacos2.0.3 m1版本的镜像 …