数据结构-增强数据的功能

灸哥问答:数据结构对软件开发的作用 在软件开发的浩瀚海洋中,数据结构如同一座坚固的灯塔,为开发者指明方向,确保他们在构建复杂系统时不会迷失。数据结构不仅仅是编程的基础,更是高效、稳定、可扩展软件的核心。 阅读详情

这里是修真院后端小课堂,每篇分享文从

八个方面深度解析后端知识/技能,本篇分享的是:

【数据结构-增强数据的功能】

【修真院java小课堂】数据结构-增强数据的功能

大家好,我是IT修真院深圳分院第12期的学员,一枚正直纯洁善良的java程序员,今天给大家分享一下,修真院官网java任务10,拓展的内容-数据结构之增强数组。

(1)背景介绍

程序=数据结构+算法,都说不会数据结构跟算法的软件工程师不是好的程序员,数组作为数据结构中很基础的一种,学习跟跟深入了解非常有必要。今天的小课堂以数组为基础,将数组封装起来,给其添加增删改查和扩容等功能。

(2)知识剖析

a)数组的特点

数组的长度一旦定义则不能改变

数组中的元素都有整数索引

数组只能存储同一类型的元素

数组即可以存储基本数据类型,又可以存储引用数据类型

b)数组的优缺点

由于数组每个元素都是有索引的,所以访问数组的任一元素是非常快的,复杂度为O(1)级别,但是往数组任意一个位置插入数据则不方便,因为每次插入一个元素,后面的元素就要往后挪动一位。时间复杂度为O(n),因此如果需求是频繁地查询比较适合用数组。

c)改进数组

可以给数组加上自动扩容地功能。

(3)常见问题

数组和链表的比较?

(4)解决方案

获取结点:只能遍历链表,然后一个一个查看

添加结点(在结点2后面添加一个结点9):

把结点2的下一个结点地址值修改为新结点9的地址值,把新结点9的下一个地址值改为结点3的地址值

链表特点:查询慢,增删快;

(5)编码实战

5.1将数组封装起来

这里要说明下是使用了泛型,也就是往这个自定义的数组容器中放任何东西。(除了基本类型?)

com.ch0918.arrayArray<> {
[] (capacity) {
= ([])Object[capacity]= }
() {
()}
}

给数组添加新功能,例如得到数组的大小,数组的容量,判断数组是否为空。//得到数组的大小

() {
}
() {
.}
() {
== }

往数组里新增元素,特别注意这里是做了自动扩容处理的,当数组里的元素达到数组的长度是,就将数组的容量扩大到数组原来的两倍。

(e) {
addElement(e)}
(indexe) {
(index < || index > ) {
IllegalArgumentException()}
(== .) {
resize(* .)}
[index] = e++}

(e) {
addElement(e)}

修改数组的某个位置的元素

(indexe) {
(index < || index > ) {
IllegalArgumentException()}
[index] = e}

查找数组

(e) {
(i =i < i++) {
([i] == e) {
System…println([i])}
}
}

(e) {
(i = i < i++) {
([i] == e) {
i}
}
-}

删除数组

(index) {
(index < || index > -) {
IllegalArgumentException()}
(< ./){
resize(./)}
temp = [index](i = indexi < i++) {
[i] = [i+]}
–temp}
() {
removeElementAt()}
() {
removeElementAt(-)}
(e) {
elementIndex = findElementIndex(e)(elementIndex != -){
removeElementAt(elementIndex)}{
IllegalArgumentException()}
}

扩容的方法

(capacity) {
Array<> newArray = Array<>(capacity)System.(newArray.)= newArray.}
(6)拓展思考

(7)参考文献

【参考一】https://blog.youkuaiyun.com/boss_way/article/details/78358615

(8)更多讨论

Q1:基于数组的数据结构常见的有哪些?

A1:java中以数组为基础的最常见就是ArrayList了,一般查询操作比较频繁,并且元素可重复,并且不需要以key-value形式存储的,都会选择用ArrayList存储数据。

Q2:什么时候适合用数组

A2:当索引是有意义的,比如一个班的学生,学号是对应一个学生(当然学号不能太大,比如1,2,3…)这时候用数组比较适合。

Q3:除了数组这种线性数据结构,还有哪些线性的数据结构?

A3:另外还有链表,栈,队列。

(9)鸣谢

(10)结束语

今天的分享就到这里啦,欢迎大家点赞、留言、转发、抛砖~

【深度强化学习】(2) Double DQN 模型解析,附Pytorch完整代码 Double DQN 算法是 DQN 算法的改进版本,解决了 DQN 算法过估计行为价值的问题。Double DQN 算法不直接通过最大化的方式选取目标网络计算的所有可能 Q 值,而是首先通过估计网络选取最大 Q 值对应的动作。在 Double DQN 框架中存在两个神经网络模型,分别是训练网络与目标网络。这两个神经网络模型的结构完全相同,但是权重参数不同;每训练一段之间后,训练网络的权重参数才会复制给目标网络。 阅读详情

相关推荐

【全新官方接口】php检测微信域名拦截,检测微信域名被封

你的域名在微信被拦截的3种常见情况 1、域名因违规或有风险被拦截(红色拦截) 2、类似taobao.com,douyin.com这种的恶意竞争式拦截,淘宝、抖音等微信的竞争对手一般都是白色拦截(白色拦截) 3、有一个中间页的拦截,需要多次点击按钮才可以跳转到你的域名的,多是一些新型域名后缀,例如.top .xyz .link后缀,这种情况,备案后可以解决(备案拦截) 通过php get_headers()函数就可以分析到结果 这个下标为6是一个URL,在微信访问后正是这个讨厌的页面! 如果切换为

TANKING,开源开发者! 2875

数据增强相关总结

Data Augmentation是通过少量的计算从原始图片变换得到新的训练数据。 数据增强对最后的识别性能和泛化能力都有着非常重要的作用。我们使用下面这些数据增强方法: 第一,对颜色的数据增强,包括色彩的饱和度、亮度和对比度等方面,主要从Facebook的代码里改过来的。 第二,PCA Jittering,最早是由Alex在他2012年赢得ImageNet竞赛的那篇NIPS中提出来的. 我们

毛财胜的专栏 8122

图解链表 —— JAVA中的单链表基本操作

文章目录1. 什么是链表2. 链表的种类3. 创建单链表3.1 创建 Node 类(车厢类)3.2 创建 MySingleList (火车类)4. 单链表的基本操作4.1 增加链表元素4.1.1 在链表头部添加元素4.1.2 在链表任意位置添加元素4.1.3 在链表尾部添加元素4.2 删除链表元素4.2.1 删除第一个节点元素4.2.2 删除任意位置 index 元素4.2.3 删除链表中指定元素的第一个节点4.2.4 删除链表的所有指定元素4.3 查找链表元素4.3.1 判断链表中是否包含元素 data4

AlinaQ05的博客 2501

数据增强(图像处理)

我们常常会遇到数据不足的情况。比如,你遇到的一个任务,目前只有小几百的数据,然而,你知道目前现在流行的最先进的神经网络都是成千上万的图片数据。你知道有人提及大的数据集是效果好的保证。对自己数据集小感到失望,你怀疑在我的小数据集上能使我的“最先进的”神经网络能表现好吗?答案是:是!在我们开始是这件事发生之前,我们需要先反思几个问题。1. 为什么需要大量的数据?流行的神经网络的参数的个数当你训练一个机器学习mode时候,你真正做的就是调参以便它能将输入(比如图片)映射到输出(比如标签)。我们优化目标是追求我们模

Yezy 1706

28GHz毫米波滤波器设计实战:用SynMatrix快速搞定SIW带通滤波器(附完整参数)

本文详细介绍了如何使用SynMatrix工具链高效设计28GHz SIW带通滤波器,涵盖智能参数预测、多物理场联合优化和加工误差补偿等核心技术。通过实战案例和完整参数模板,帮助射频工程师快速实现毫米波滤波器设计,显著提升工作效率并避免反复迭代。

weixin_29284657的博客 495

1、Ka频段双极化低剖面卫通相控阵天线

设计了双馈口叠层十字缝隙耦合天线,采用“双线极化天线 +旋转馈电 + 移相控制”架构,采用双馈口的叠层十字缝隙耦合天线,并以 2 x2 阵列为主体,旋转排布实现二次圆极化,同时极化可切换,通过多层 PCB 工艺实现天线层、控制/电源层功分网终层、芯片层一体化集成,研制出 64 阵元的圆极化可切换发射天线,测试结果表明:天线工作 频段为 27.5 ~31 GHz,可实现60°扫描,法向轴比

qq_43416206的博客 4366

数据预处理:数据增强与数据生成

1.背景介绍 数据预处理是机器学习和深度学习的基础,它涉及到数据清洗、数据转换、数据归一化、数据增强和数据生成等多个方面。数据增强和数据生成是数据预处理的重要组成部分,它们可以帮助我们提高模型的性能和泛化能力。在本文中,我们将深入探讨数据增强和数据生成的核心概念、算法原理、具体操作步骤和数学模型。 2.核心概念与联系 2.1 数据增强 数据增强(Data Augmentation)是指通过...

AI天才研究院 2011

YOLOv11缝合改进Conv | SAConv在YOLOv11中的应用可切换空洞卷积与性能提升(附代码)

在本篇文章中,我们将深入探讨如何通过引入**SAConv**(Switchable Atrous Convolution,可切换空洞卷积)来优化YOLOv11网络结构,特别是在卷积操作方面的创新。我们会解析SAConv的核心原理和架构设计。

一键难忘的博客 948

不是所有数据增强都可以提升精度

即使引入噪声或裁剪图像的一部分,模型仍可以对图像进行分类,数据增强有一系列简单有效的方法可供选择,有一些机器学习库来进行计算视觉领域的数据增强,比如:imgaug (https://github.com/aleju/imgaug)它封装了很多数据增强算法,给开发者提供了方便。计算视觉领域的数据增强算法大致可以分为两类:第一类是基于基本图像处理技术技术的数据增强,第二个类别是基于深度学习的数据增强算法。向左,向右,向上或向下移动图像可能是非常有用的转换,以避免数据中的位置偏差。

whaosoft143ai的博客 6622

【考试大纲】中级多媒体应用设计师考试大纲

中级多媒体应用设计师考试大纲

邓邓子的博客 382

海洋CMS admin_notify.php 远程代码执行漏洞复现(CVE-2024-30565)

海洋CMS admin_notify.php 接口处存在远程代码执行漏洞,经过身份验证的远程攻击者可利用该漏洞执行任意代码,写入后门文件,进而控制整个web服务器。

0xSec 2712

Mosaic数据增强

1、Mosaic优点:可以丰富物体检测背景和小目标,丰富了数据集。每次训练过程中送入BN层的为四张图片,使得batch size数据不需要太大,一个GPU就可以取得较好的结果。 缺点:如果数据集中本身就有很多小目标,数据增强之后会导致小目标更小,模型泛化能力变差。(Yolo v4提出) ...

laner__gg的博客 2123

蓝牙攻防实战:蓝牙技术详解

蓝牙作为轻量级、低功耗的无线通信技术,其设计兼顾了效率与灵活性,但也留下了诸多安全隐患。随着物联网设备的爆发式增长,蓝牙的攻击面也在不断扩大。理解其底层通信机制、协议栈结构以及配对加密逻辑,是提升无线安全防护能力的关键。

idlecloud0105的博客 738

C语言数据结构算法-简单表达式求值增强版:功能全面,应用广泛

C语言数据结构算法-简单表达式求值增强版:功能全面,应用广泛 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 C语言数据结构算法-简单表达式求值增强版是一个开源项目,旨在通过C语言实现一个功能强大的表达式求值器。该工具支持整数、小数及负数的计算,通过中缀转后缀算法,能够对各种复杂度下的数学表达式进行准确求值。 项目技术分析 技术框架 该项目的核心是基于C语言开发,利用栈...

gitblog_06728的博客 847

老版QQ原生表情gif动态

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

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Conv:超越UIKit的UICollectionView数据结构优化库

Conv:超越UIKit的UICollectionView数据结构优化库 基础介绍 Conv 是一个开源项目,旨在智能地表示和优化 UICollectionView 的数据结构,以提供比原生的 UIKit 更高效和简洁的实现方式。该项目的编程语言主要使用 Swift。 核心功能 Conv 的核心功能包括: 易于定义的 UICollectionView DataSource 和 Delegate ...

gitblog_00611的博客 310

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

list 增强for循环 List存储学生对象用3种方式遍历 数据结构 List集合子类特点 LinkList集合特有的功能 set集合 哈希值

Data19A 文章目录Data19Alist增强for循环List存储学生对象用3种方式遍历数据结构List集合子类特点LinkList集合特有的功能set集合哈希值 package Demo24; //写一个程序,计算1—1/2+1/3-1/4+1/5++++1/10000000 public class Demo24 { public static void main(String[] args) { double a =0,b=0; for (int i = 1;

weixin_54425421的博客 712

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Python-lenses:深度操作不可变数据结构的Python库

Python-lenses:深度操作不可变数据结构的Python库 1. 项目基础介绍及主要编程语言 python-lenses 是一个开源项目,它提供了一个用于操作深层嵌套不可变数据结构的Python库。该项目的目标是让开发者能够以函数式编程的方式来处理复杂的数据结构,而无需改变它们。本项目主要使用 Python 语言开发。 2. 项目的核心功能 python-lenses 的核心功能是通过“透...

gitblog_01194的博客 296

数据结构中链表功能的实现

线性表链式存储结构的特点是:用一组任意的存储单元存储线性表的数据元素,这组存储单元可以连续也可以不连续,为表示数据元素与其后继元素之间的逻辑关系,对数据元素来说,除其本身的信息外,还存储了一个指示后继的一个信息,数据元素的存储映像为节点。节点:1.数据域:数据元素的信息2.指针域:直接后继存储的位置下面用代码来实现链表的一些功能。

mifengxing的博客 694

Java数据结构和算法学习(三)—— 栈

Java数据结构和算法学习(三)—— 栈 前言 数组更多的是用来进行数据的存储,纯粹用来存储数据的数据结构,我们期望的是插入、删除和查找性能都比较好。对于无序数组,插入快,但是删除和查找都很慢,为了解决这些问题,后面会学习二叉树、哈希表的数据结构。 栈和队列更多的是用作程序员的工具,作为构思算法的辅助工具,而不是完全的数据存储工具。这些数据结构的生命周期比数据库类型的结构要短的多,在程序执行期间它...

qq_39081310的博客 254

带有Javaslang的Java 8中的功能数据结构

Java 8的lambda(λ)使我们能够创建出色的API。 它们令人难以置信地提高了语言的表达能力。 Javaslang利用lambda来基于功能模式创建各种新功能。 其中之一是功能性集合库,旨在替代Java的标准集合。 (这只是鸟瞰图,您将在下面找到易于理解的版本。) 功能编程 在深入探讨有关数据结构的细节之前,我想谈一些基本知识。 这将清楚说明为什么我创建Javasl...

最佳 Java 编程 220

Java中的数据结构

以下内容引用自http://wiki.jikexueyuan.com/project/java/data-structures.html: Java工具包中所提供的数据结构非常强大并且有很多的功能。这些数据结构包含以下的接口和类: Enumeration BitSet Vector Stack Dictionary Hashtable Properties 现在...

angou6476的博客 130

java堆栈算数据结构吗_Java数据结构和算法系列———栈

目录1、栈的基本概念2、Java模拟简单的顺序栈实现3、增强功能版栈4、利用栈实现字符串逆序5、利用栈判断分隔符是否匹配6、总结1、栈的基本概念栈(英语:stack)又称为堆栈或堆叠,栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆...

weixin_35803802的博客 203

第14章《数据结构的扩张》:如何扩张数据结构

如何扩张数据结构 对基本数据进行扩张以支持一些附加功能,在算法设计过程中是相当常见的。所以扩张一种数据结构大概可以分为如下4个步骤: 选择一种基础数据结构 确定基础数据结构中要维护的附加信息 检验基础数据结构上的基本修改操作能否维护附加信息 设计一些新操作 以上仅作为一个一般模式,大多数的设计工作都包含试探和纠错的成分,过程中所有步骤通常可以并行进行 区间树 扩张红黑树来支持由区间构成的动态集...

BGoodHabit的博客 680

Lua数据结构

table表是Lua中唯一的数据结构,其他语言所提供的数据结构如数组arrays、记录records、列表lists、队列queues、集合sets等,在Lua中都是通过table实现的。 在C或 Passcal中会使用数组arrays列表和lists(record+pointer)来实现大部分的数据结构,而在Lua中不仅可以用table完成同样的功能,而且table的功能更加强大...

JunChow 385
上一篇: MYBATIS生成策略
下一篇: 为什么要使用Interface,而不是直接使用一个实体类来完成任务?Interface和Impl这种方式的好处是什么?
learning__java
博客等级 码龄8年 87粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值