java基础巩固训练营【第一轮】(七) 数据结构中的java

浪潮服务器ESXI6.7部署实战:手动集成RAID驱动避坑指南 本文详细介绍了在浪潮服务器上部署ESXI6.7时手动集成RAID驱动的完整流程和避坑指南。从驱动获取、解压技巧到封装实战,逐步解决国产服务器常见的驱动缺失问题,特别针对PM8060 RAID卡提供具体解决方案,帮助IT运维人员顺利完成ESXI部署。 阅读详情

本章的测试代码存放在 com.j2ee110.csdn.leader.datastruc包路径下面

大家的练习代码存放在 com.j2ee110.csdn.student.姓名标识.datastruc包路径下面 

 

数据结构可能是大家比较头疼的一个问题,其实我也很头疼,至今《数据结构》这本书上关于排序时间复杂度的那段文字我还是没有彻底的看董。其实数据机构在变成中是一个重要的概率,先贤大牛总结的好“数据结构+算法=程序”,这句话太对了。但是我们需要思考的是,什么是数据结构,数据机构是干什么用的呢?我觉得数据机构其实就是数据储存的方式,那数据是什么呢?

 

在java中数据就可以使java的基本类型(基本类型链接),java对象(对象链接),我都可以成为数据,那么数据结构就是这些数据的存储方式。比如我们需要计算两个数值变量的和,那我们可用两个变量来存储需要计算的数据,但是如果我们需要计算10万个变量的和,那么定义10万个变量也是可以的,但是这是一件耗时费力的苦力工程,读者中愿意干的的人估计为负数,所以就引入了数组。的那是数组有个问题是,数据的容量(长度)在定义的时候就已经确定了,一定数据定义之后其长度不能修改,但是在现实的应用中我们可能并不知道我们需要存储的数目,因此产生的动态的数据,在java中就是我们常见的集合类。

 

我在说下去大家就烦了,其实我也烦了,因为很多理论其实至今我也没有具体的用过,所以我们还是看看在具体的应用中我们会用到那些数据结构。我将我们经常用的数据结构划分为简单的三大类

 

 

字符串

 

字符串存储的是最简单的数据类型,其实就是一堆字符的集合,通常存储一下文本类的数据,比如我们要从一个文本文件中将字符“a”替换成“b”,这个时候我们一般首先会读取文本文件,然后将其存储在一个字符串中,然后对其进行操作。

 

字符串是一种非常常用的数据结构,我们平时用到的机会非常的多,对字符串有很多常用的操作,比如截取,替换,拼接等,这些都是我们经常会用到的。

 

 

数组

 

字符串只能处理简单的字符集合,但是遇到比较复杂的java对象字符就不行了,这时数组出来了。比如,在上一章中让大家建定义一个employee对类,如果我创建10个employee的对象,那么需要用10个变量来存储,那可是繁重的苦力工程啊,这时如果用数组就很容易的将这些对象存储起来。

 

数组在存储同一类型的多个变量时候很方便,但是数组有一个缺点,就是数组在定义的时候就决定了其大小,一旦定义后就不能改变。

 

但是我们在实际的开发中很多时候,在使用之前都不知道需要存储的对象数目是多少,这个时侯时候使用数组很不方便,因此在java中便引入了集合框架。

 

java集合框架可以写一篇很长的文章,而且网上有写的很好系列,我就不班门弄斧啦。但是在我们的第一轮中,我觉得大家先掌握两个比较常用东东

 

一个是   List接口,java.util.List,还有一个事List接口的实现类  ArrayList。

 

这个时候有人也许会骂我,java集合框架那么重要的东西,你就这么随随便便的就讲两个类,这不是不负责任吗?

 

呵呵,我的建议是,与其知道那么多,但都不会用,我们还不如就记住这两个,并且能用。不要忘记我们第一轮宗旨是,先学会用,把程序跑起来,然后在慢慢的探究其原因。

 

如果您还是有意见那就那句话,我用我的想法写,您用您的智慧读!

 

 

 

 

哈希表

 

 

数组和hash表都是数据的存储方式但是他们是有区别的,什么区别了,我们还是看一个例子吧,这里我很想把例子贴出来,但是最终我是觉得用代码来说吧更好,所以大家可以从我的SVN 服务器中下载我们的代码

 

/sample/com/j2ee110/csdn/sample/

 

首先为了计算我们还是需要先创建一个对象,我自作主张的把这个对象命名为employee,而不是student,因为我觉得大家从现在开始要学会转换角色,不要老是把自己当学生,我们已经成年了,不是小孩了,不要老是找这样的借口,我还是学生没有经验,以后有了经验就会好的。

 

我们建立以班级的学生数组,然后我们需要从中找出姓名为“fengx”的学生,首先用数组完全是可以的,算法很简单,遍历,然后取出每个对象的name属性比较,代码如下

 

但是用哈希表存储数据呢? 

 

在java中如果需要使用哈希表首先需要用到Map接口和HashMap对象,记住这不是必须的而是最常用的。

 

Map employeeMap = new HashMap();

 

employeeMap 就是被创建的Map对象,根据哈希表的定义,每存储一个对象均需要为该对象设定一个Key,这个key就是以后快速查找的索引。

 

到了这里我建议大家先花20分钟看一下我们提供的实例代码,请大家仔细看一下代码的注释,看完之后有什么问题可以跟我联系,建议先发一封邮件详细的说明问题,说明你的出现问题的代码和代码,然后上传代码,然后QQ提醒我,如果我处在空闲期,我会一般会马上恢复。

 

小提示:

string 和 StingBuffer 他们之间的区别需要指出,在第二期中用观察器来产看内存的使用情况

 

在第二期中可以稍微介绍一下树,图等数据结构

 

 

课后练习

大家还记得我们在第五章给大家的作业,在这个作业里面大家建立了相关的对象,那现在可以用到他们了。我们就利用这些对象完成下面的要求

1、创建10个“产品”对象,分别用数组,List集合,Map,这三种方式存储这个10个对象。注意这个10个产品对象的“产品名称”属性不能重复

2、创建三个方法,根据“产品名称”属性,分别从数组,List,Map中找出“产品名”符合的对象。如果大家不清楚这段问题那请参考com.j2ee110.csdn.leader.datastruc.Sample 这个代码。我始终觉得代码是最好的描述方式。

 

注意大家在编写代码的时候一定要写注释啊!

 

暑期java基础巩固训练营开始
java基础巩固训练营 简介
java基础巩固训练营【第一轮】(一)项目环境和规范
java基础巩固训练营【第一轮】(二)JAVA基础
java基础巩固训练营【第一轮】(三) 编写、编译、运行 
java基础巩固训练营【第一轮】(四) 利器(IDE工具)
java基础巩固训练营【第一轮】(五) 基本数据类型
java基础巩固训练营【第一轮】(六) 面向对象的JAVA
java基础巩固训练营【第一轮】(七) 数据结构中的java
java基础巩固训练营【第一轮】(八) 文件读写
java基础巩固训练营【第一轮】(九) 用java通信
java基础巩固训练营【第一轮】(十) 多线程
java基础巩固训练营【第一轮】(十一) 直面错误--java异常
java基础巩固训练营【第一轮】(十二) 我们一起来找茬
ava基础巩固训练营【第一轮】(十三) java桌面应用
java基础巩固训练营【第一轮】(十四) 大家一起做项目

 

 如果您对我的文章感兴趣的话,请点击这里加我为好友,让我们一起进步
 

http://student.youkuaiyun.com/invite.php?u=106708&c=2383a3846076c876

【即插即用模块】Transformer篇 | MICCAI 2025 | ReLULA:Q/K双ReLU线性注意力,既轻又准! 本文介绍了一种基于线性注意力的多实例学习模块(Lin-MIL),适用于高分辨率视觉任务。该模块通过转置计算顺序和使用ReLU激活,将计算复杂度从O(n²d)降至O(nd²),同时提升特征判别性。核心创新包括Q/K双ReLU激活、可学习温度系数和数值稳定归一化。实验表明,该模块在轻量化视觉任务中优于传统线性注意力和Mamba架构。代码实现了模块化矩阵乘法,支持即插即用替换ViT自注意力层。该模块特别适合计算病理学等需要处理大量图像补丁的任务。 阅读详情

相关推荐

麒麟系统下PaddleOCR的离线部署实战:从环境搭建到模型优化

本文详细介绍了在国产麒麟操作系统上离线部署百度PaddleOCR的完整实战流程。从系统环境准备、Conda虚拟环境搭建,到PaddlePaddle框架和PaddleOCR的离线安装,再到预训练模型的本地部署与优化技巧,提供了全面的文字识别解决方案。重点解决了离线环境下依赖包管理、模型量化加速等核心问题,并附带了批量处理与内存监控的进阶代码,适用于对数据安全有严格要求的政务、金融等场景。

docker7nomad的博客 963

java基础巩固训练营【第一轮】(七) 数据结构中的java 补充

当人走的太快的时候就要停下来,让灵魂能够跟上。 1024

VCS多lib编译实战:如何高效处理Verilog模块重命名与分开编译

本文深入探讨了在复杂SoC设计中,如何利用VCS工具实现多库编译,以高效处理Verilog模块重命名与分开编译的工程难题。通过解析synopsys_sim.setup配置、Config映射机制,并提供完整的自动化脚本实战指南,帮助工程师构建健壮、可维护的编译环境,从而显著提升大型项目的编译效率和代码管理灵活性。

weixin_29169505的博客 357

java基础巩固训练营【第一轮】((二)JAVA基础 补充

当人走的太快的时候就要停下来,让灵魂能够跟上。 993

通俗易通解释SLAM问题的数学描述:运动方程和观测方程

高翔博士在他的《视觉SLAM十四讲》中把SLAM问题的数学描述抽象成了两个数学方程,以下对此做个总结,并且对此做一些通俗易懂的解释: 一、方程的总体形式 作为理性层次的描述,我们引入数学方程来描述SLAM过程,其中第一个方程叫做运动方程、第二个方程叫做观测方程,想象一下我们在研究SLAM的时候肯定需要观测机器人(无人汽车、无人机等都可以统称为机器人)的运动(画面感很强哈哈),这样很容易理解并且记忆这两个方程的名称和意义: 二、变量的含义 我们看到,这两个方程中有大量的英文字母作为变量存在其中,下面介绍一下

weixin_41855010的博客 7114

告别GIS软件!用R语言ggplot2+ggmapcn绘制出版级世界地图(附5种投影对比图)

本文提供了一份完整的实践指南,教你如何利用R语言及其强大的ggplot2生态系统,结合ggmapcn包,绘制出出版级的世界地图。文章详细对比了五种经典地图投影(如摩尔维德、罗宾森投影)的代码实现与视觉差异,并讲解了如何添加比例尺、指北针等专业元素,最终导出高清PDF,实现从数据分析到专业可视化的全流程代码化操作,彻底告别传统GIS软件。

p5l2m9n4o6q的博客 407

java基础巩固训练营【第一轮】(十三) java桌面应用 补

当人走的太快的时候就要停下来,让灵魂能够跟上。 1246

搞定安卓11+抓包难题:用Kitsune Mask、magic_overlayfs和LSPosed三件套绕过SSL Pinning(保姆级教程)

本文详细解析了安卓11+系统中抓包面临的核心挑战,包括SSL Pinning和Root检测机制,并提供了使用Kitsune Mask、magic_overlayfs和LSPosed三件套的完整解决方案。通过动态分区技术解析和工具链配置,帮助开发者绕过安全限制,实现高效抓包分析。

weixin_42665255的博客 442

java基础巩固训练营【第一轮】(十二) 我们一起来找茬 补

当人走的太快的时候就要停下来,让灵魂能够跟上。 1261

Python爬虫实战:微信小程序内容采集的全面指南

在移动互联网时代,微信小程序已成为企业和个人提供服务的重要渠道。小程序中包含了大量有价值的信息,但微信官方并未提供便捷的数据获取接口。本文将详细介绍如何使用Python爬虫技术采集微信小程序内容,包括最新技术方案、完整代码实现以及应对各种反爬机制的策略。小程序运行在微信封闭环境中,无法直接访问数据通信主要通过HTTPS加密传输内容动态加载,依赖JavaScript渲染微信有严格的反爬机制。

2201_76125261的博客 3116

具身智能(40):主流 VLA 模型π₀

摘要: π₀是首款专为机器人设计的VLA(视觉-语言-动作)端到端基础模型,通过双阶段训练实现“感知-决策-执行”闭环。其创新点包括:1)FlowMatching技术实现连续平滑动作控制(精度0.3°);2)结合VLM预训练与多机器人实操数据,零样本任务完成率达76.4%,远超同类模型;3)支持模糊指令理解与动态场景适应(如遮挡识别)。开源版本涵盖不同规模模型,适用于工业装配、服务机器人等场景,在延迟(213ms)和稳定性(92%自主恢复率)上显著领先OpenVLA等竞品。

码农17年的博客 510

java基础巩固训练营【第一轮】(十四) 大家一起做项目 补

当人走的太快的时候就要停下来,让灵魂能够跟上。 1227

基于Simulink的四足机器人楼梯攀爬仿真模型

构建一个基于Simulink的四足机器人楼梯攀爬仿真模型,旨在模拟四足机器人在面对楼梯等障碍时的运动控制和稳定性调整。以下是一个详细的步骤指南,帮助你从零开始创建这样一个仿真模型。

xiaoheshang_123的博客 247

java基础巩固训练营【第一轮】(八) 文件读写 补充

当人走的太快的时候就要停下来,让灵魂能够跟上。 1032

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java基础巩固训练营【第一轮】(十一) 直面错误--java异常

当人走的太快的时候就要停下来,让灵魂能够跟上。 1251

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

java基础巩固训练营【第一轮】(六) 面向对象的JAVA 补充

当人走的太快的时候就要停下来,让灵魂能够跟上。 916

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java基础巩固训练营【第一轮】(一)项目环境和规范 补充

当人走的太快的时候就要停下来,让灵魂能够跟上。 896

java基础巩固训练营【第一轮】(九) 用java通信补充

当人走的太快的时候就要停下来,让灵魂能够跟上。 1056

java基础巩固训练营【第一轮】(五) 基本数据类型 补充

当人走的太快的时候就要停下来,让灵魂能够跟上。 958

java基础巩固训练营【第一轮】(十) 多线程 补充

当人走的太快的时候就要停下来,让灵魂能够跟上。 1258

java基础巩固训练营【第一轮】(十三) java桌面应用

当人走的太快的时候就要停下来,让灵魂能够跟上。 2361

java基础巩固训练营【第一轮】(一)项目环境和规范

当人走的太快的时候就要停下来,让灵魂能够跟上。 3480

java基础巩固训练营【第一轮】(九) 用java通信

当人走的太快的时候就要停下来,让灵魂能够跟上。 1578

java基础巩固训练营(三) 编写、编译、运行--补充

当人走的太快的时候就要停下来,让灵魂能够跟上。 1018

java基础巩固训练营【第一轮】(十二) 我们一起来找茬

当人走的太快的时候就要停下来,让灵魂能够跟上。 1948

java基础巩固训练营(四) 利器(IDE工具) 补充

当人走的太快的时候就要停下来,让灵魂能够跟上。 905
上一篇: java基础巩固训练营【第一轮】(六) 面向对象的JAVA 补充
下一篇: java基础巩固训练营【第一轮】(七) 数据结构中的java 补充
模事在人
博客等级 码龄17年 1546粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值