00:00
好,我们把这个第二点呢就说清楚了,就是关于数值型的这种数组的话呢,它就考察这个最大最小平均和总和这个啊就结束了,行,然后呢,我们来看这个第三类操作,第三类呢叫关于数组的复制反转查找,实际排序也算哈,只不过呢,排序呢这块东西比较多一些,所以我单独的列了一个四。嗯,我们先来看这个三叫数组的复制,注意这叫复制,这叫复值哈,大家有点区别,那关于数组复制这块的话呢,首先我们先看一道题目,通过这道题目呢,我们来说明一下这个复制的一个一情况啊,先看这道题。这道题的话呢,我们给它粘到这个,咱们E当中CC这是一个了,我就写到上面了啊。数组的意思,一二一下啊过来。
01:00
有点长啊,这样双击一下,这样能看全。这个。好,那我们就按照这个题目的这个要求顺序呢,咱们从上往下呢去看may out斜杠,诶大家呢,刚开始写代码的时候,呃,你现在呃,就是用eclipse的话啊,呃,可以呢,就用一下这些快捷键了,但这些快捷键里边呢,就唯独有一个呢,大家稍微的先悠着点用啊,就这个outt加斜杠。嗯,就这块呢,是一个提示功能嘛,就其他的这些呢,你复制啊,前移后移啊等等都可以用,这个的话呢,有些东西你要没写熟了,就先不要着急用out斜杠了,比如说system.out这个都还不收呢,咔咔的就光这个outt斜杠了啊回头自己去写的时候呢,诶这个怎么写来着啊,就忘了会出现这种情况,比如说像后边咱们讲这个。多线程的时候呢,会讲到一个关键字叫sized的啊,这个单词呢,你看就特别恶心哈啊,所以很多同学写的话呢,就是开发中写就syn,然后outt斜杠啊,直接呢就诶一回车就出来了,真正开发中这个比如说让你去写一个线程安全的一个单立模式,就需要你写这个单词了,到那时候不会写。
02:12
写不出来或者写错了,这个很尴尬,关键字都写不出来,这个是有点尴尬的啊啊,你不能到那时候sin加小括号说哦,写杠一下是吧?啊那就太low了啊呃,所以呢,就刚开始的时候呢,大家哪块不熟的先别着急outt斜杠了,写熟了以后呢,加快速度啊,Outt斜杠一下。行may方法进来,这块呢,说首先呢,创建一个名为a test的类,这个类名不太一样啊,把它这个改了,嗯,说在这个main方法中声明两个数组是in特型的,那就这样写,既然都是int型的数组,我就合并了。好搞定,下一步说使用这种大括号啊,A1呢,做了一个初始化操作元素呢,就是这些啊,这个也比较简单,A1等于又一个int,诶在这里边CTRLV一下附上值。
03:08
啊,就按照他这个题目说的,他说啥咱们就做啥就行啊,比较清楚啊,下边说呢,显示俄瑞E的内容,这就便历呗。好便利,放循环这个写了写了不少了啊,感觉再写都快吐了啊。那大家写的话呢,就得写的要达到这种感觉,你都写的代码熟的都要吐了,那就成了,你别使那个写的不会写,然后都快吐了,那不行啊,然后哎。这个我们给它写成一行吧,杠T好,这样的话呢,我们就把这个的内容呢,就输出出来了,嗯,比较简单,到目前为止执行一下。
04:01
哎,就这样一些数啊好,接着这呢,有一个关键的一个操作。说呢,负值瑞二变量等于瑞一,哎,把这个变量赋值为瑞一,这就是一个简单的这样的一个负值。搞定,复完了,复完以后下面说呢,就修改A瑞二中偶索引的元素,CTRLC修改中偶索引的元素,使它呢等于其索引值,怕你听不懂这块举例子了,就是我们这个索引呢是偶数的时候,然后呢,让它这个值呢改成对应的你这个索引的值。哎,就这个意思,那咱们就得去便利的过程当中进行一个调整。I呢,小于二点加在这里面的话呢,我们说如果我们这个I呢,取模二等等于零,对,这就我们要的那个所谓的偶索引了,咱就得是让A瑞2I等于I。
05:13
啊,这不等于这个索引值吗?那通过这样一个循环的话呢,咱们就诶把这个数据呢,都做了一个调整,注意这时候呢,我们修改的是A2。哎,修改的是瑞二,那修改完以后他说呢,让我们去打印瑞一。一下啊,那这时候大家去想一下这个会是什么情况。哎,咱们上边呢没有换行,我在这块呢,换一个行。你看啊,整体我们来看,嗯,瑞一赋了值了,打印一下俄瑞一,嗯,把瑞一呢复制给俄瑞二,我们修改的是俄瑞二,按说呢,俄瑞一不该变是吧,那我们看一看结果。
06:03
对,这是原来的瑞一,这是现在的俄瑞一,发现变了,哎,而且变的这个情况呢,恰好跟咱们说的这个A瑞二的变化情况是吻合的,对,那这时候要想为什么。地址值一样,哪个地值一样,这个地址值一样对吧?那这个影响的是什么呀?那这个我就直接问这个问题吧,我们在堆空堆空间当中哈,这个到底有几个这样的数组啊,对,只有一个。哎,只有一个啊哎,这个大家说的是对的,我们呢,只是把A瑞的地址给了A瑞二了啊,那在内存中呢,实际上呢,现在是这样子的,我都把这个图画出来了哈,嗯,我们呢,一开始是一个RE1,哎,然后对空间当中呢,我们造的这个就235,这是一个所有的这个素数哈,找完了,然后它的地址呢是1234。
07:09
我把这个1234呢,付给了咱们A瑞一叫1234,然后下边呢,咱们写的一个这个操作,我是把A瑞一的地址给了俄瑞二,给了俄瑞二,那给了俄瑞二以后呢,这个俄瑞二相当于指向呢,还是对空间中刚才俄瑞一的那个数组。所以它俩呢,其实是两个变量没问题,但是两个变量的地址值是一样的,堆空间当中只有一个数组。啊,或者说再换句话说,大家记住这样的结论,就是我们拗一次,你就有一个数组,我们自始至终是不是就拗过一个啊,哎,所以它自然呢也就只有一个,嗯,那所以的话呢,当我们去改A瑞二,其实你改的不就是A瑞一吗?哎,接着你再通过瑞一去改,那肯定的,哎,A瑞一去便利,那肯定呢是修改以后的。
08:00
啊,这个就比较清楚了啊行。插一句。啊,在这插一句,刚才课间呢,有个同学问这个问题,大家看怎么解释啊?哎,他说的是这个点说呢,诶老师这个Y跟X不都是存储的,叫地址值吗。刚才咱们这个问题。是吧,哎,存的都是地址值,那为什么这个Y的地址值我付给X的时候呢,它就会报错呢。都是地址值按说呢就可以复过来了是吧,为什么还错了。对,这就是咱们说的就是负的话呢,就要么呢你俩类型一样,要么呢,就是有那种自动类型提升的那种操作才行,那呃,这里边其实咱们讲的时候说是低质值,其实它存的呢,不光是地质值的,咱们这个在讲这个课的时候呢,这不是说过像这个二维数组,它一上来是不是有两个这个中括号啊。哎,就是除了我们就是你打印它的话啊,除了它能够存储地址值之外呢,它前边呢,还保留了你这个变量的一个类型啊,就是在赋值的时候呢,它其实要求你的类型也得先一致是吧?啊或者要匹配,然后呢,诶再考虑这个地址的一个赋值情况啊,就是如果类型都不能满足的话呢,这个也是不可以复制的。
09:20
啊,从咱们后边讲面向对象来讲,其实也是一致的啊,诶后续的咱们讲面向对象的时候还会说啊,就是这是一个好的问题啊。好,那咱们再回过来,通过咱们刚才这道问题的话呢,呃,想说明的就是咱们这个操作呢,不能叫做数组的复制啊。不能称作哎,数组的一个复制。哎,是这个复制,注意这个复制啊,嗯,这个复制的意思呢,就比如说大家好比是比如说啊,比如说咱们这个我在这个D盘,我这新建一个文件目录吧。
10:04
我叫哈,在这里边呢,我就随便的写整点东西啊,放俩文件,写了很多的这个数据的信息,好现在的话呢,我说我想把hello,这个文件呢,我想文件夹上我想复制一份。这个复制呢,是不是要求你在内存空间当中,比如硬盘当中,这是你原来你哈占的占据的这个存储空间,这个复制呢,你是不是真的得再开辟一块啊,对,这叫复制,而咱们现在呢,按照刚才这个题目的意思,只是做了一个变量是吧,这个操作呢,相当于咱们平时做了一个什么操作呀,不是剪切,对,相当于是咱们创建了一个快捷方式。嗯,你看我这个文件呢,你打开它这有个大小哦,这个里边没怎么写东西是吧。随便整点东西保存一下。
11:02
这块我们看这个hello的话呢,这不就有相应的这个大小嘛,嗯,那你要看这块的话呢,这个hello啊,你看它的属性,它其实很小。它只是存了一个是不是那个地址啊,哎,只存了个地址,但是你要通过这个你打开是不是也能开开刚才我们那个D盘下这个结构是吧?哎这俩呢,其实就相当于这个哈呢,就有点像A1这个呢,就像A瑞二啊,我通过这个A瑞二打开以后,我要是把这里边都干掉。你再通过这个D盘这块打开是不是也没有,哎,所以呢,就相当于咱们这里边儿的这两个的关系一样啊,所以这呢不能叫做复制了,这要注意。
我来说两句