00:00
好,咱们来接着讲这个课啊,这个之前一天的话呢,咱们是把这个数组中的一位数组,二位数组的主体内容呢就都讲了,然后今天的话呢,我们把这个二维数组的课后练习题做一下,那接着话呢,就是关于数组这块呢,我们在总结性的看看都有哪些常用的算法,包括呢,数组的工具类,还有数组中常见的异常啊,具体都有哪些,这是我们这个今天的一个主要内容啊,那先来看一下这个叫二维数组中的课后练习题,来先看这道题,这道题呢说要获取AR数组中所有元素的和。啊,它这个当中所有元素的和,那首先的话呢,你能确定了它就是一个二维数组了,对那二维数组初始化,你用哪种方式初始化比较好啊。静态还是动态啊,静静态静态吧,对,你要是静态的话呢,一行代码其实就可以搞定是吧,用动态的话呢,是不是就很悲壮了,能能想象到吧,能能想象到就是你要是动态的,你要是动态的话呢,你得这块先我们in特行的这个二维数组,诶拗一个in特型的这块呢,你写的话呢,还不太好写这个第一个倒是可以写这些几啊。
01:13
写三吧,对,这不是三行,你这样去记是吧,三后边这个呢,还没法写对,因为你看每一行是不是个数又不一样,对,那你要是接下来的话呢,又得是一个个的这样去调了哈,AR里边第一行,呃,你这块又得是去扭一下in特,如果这块呢,你要用一个静态呢,也还好,如果块呢,你也不想用静态。那就麻烦了,那你这个写起来会很痛苦的是吧,这写个又是三,然后下边呢,就A2,然后零它的第一个元素。哎,这个赋值呢,就是这个三,然后依次再往后往后附,你这个呢,你十行代码好像都搞不定哈,哎,这就很麻烦了,所以呢,针对针对于这个具体的问题问题,大家看应该用静态儿动态啊,这个去选择就行,好,这个呢咱们也写一下啊,这个也不太困难,所以先呢,我们去新建一个D07。
02:09
呃,D07下,这是咱们的一个工程,就大家呢实际开发当中的一个项目,然后src呢,存放咱们的源码啊叫SS啊呃,我们去新建一个包,呃这个包呢,大家也养成个习惯,先写着啊,就是咱们代码的话呢,多的时候呢,根据功能我们需要给它写在不同的包下,呃包的话呢,通常首先呢,是公司整个这个域名的一个倒序,对咱上硅谷的话,就是艾特硅谷啊,这个一开始咱们起这个域名的时候呢,呃,没没敢用这个SJD啊上硅谷是吧?呃就是看着好像没啥,但是一一搜入这个输入法呢,他有好多那个词不太吉利啊,是死光光是吧,不敢用啊,这用艾特硅谷啊啊然后下边点Java呢,这是咱们这个讲新课的这个课程的内容啊,要是练习的话呢,我就放在另外一个包下了,所以我们通过这个功能呢,先简单做个区分啊,叫练习access啊,帅哥啊帅哥。
03:09
是啊,那那样也可以理解哈,那女生没法来了是吧?嗯嗯,然后呢,下边这个来一个new new这块呢,我们去新建一个class,关于咱们数组的这个练习,诶我就要EX121这样啊啊在这里边呢,我们来写这个课后题啊,诶这呢首先是一个main方法出来,诶我们通过这个静态初始化的方式,呃,给大家做一个初始化啊嗯,那我就直接在这写了。那in的型的AR等于new一个in的型,哎这么着,那在这里边我们一个个的去赋值358。哎,然后整个呢,这个作为整体的,作为第一个元素,然后第二个十二九。
04:00
7064。诶,这就搞定了,那下边的话呢,让去求这个总和啊,这求总和的话呢,其实就跟前面我们讲过那个偶数的和呀,奇数的和呀,其实又类似啊,就是你下边写的话,不就是变历吗?啊变历之前呢,你专门用个变量来记录这个总和。诶,记录我们的总和,好,既然呢,你是一个二维数组了,那自然而然的就是有个嵌套for循环,那这个大家写代码的话呢,写熟以后呢,那就直接呢就可以加速了,就啊。就是你要写这个代码的话呢,嗯,手这个这个指法没练出来,你这吭哧吭哧脑子都已经转了很多遍了是吧,这么简单的题,然后这个手跟不上,这很痛苦的啊,所以这个指法呢,还是要练一练的啊,而且呢,尤其像这种便利的问题,这么简单的问题啊,你这个呢,其实都不怎么用过脑子的,就脑子感觉还没有反应过来,手都已经出去了,找到这样的一种感觉就可以了。
05:12
哎,当然真正咱们开发的时候呢,像这种代码老师写的还挺恶心的,我们还可以去建一些模板。就是你写一个这个简单的几个字符以后呢,诶一回车这个模板就整合出来了啊,可以去创建的啊行,这个后续呢,咱们再讲这个问题啊好,这样的话呢,我们就写好这个方训完了,在这个里边的话呢,直接sum加,等于我们的AR开阶,哎,就搞定,哎出了整个这个for循环以后,输出一下我们的thumb。哎,CTRLS搞定了吗?哎,这个题比较简单啊,这个runs Java application啊执行哎,综合54行这道题呢,就搞定了,比较简单一些啊,嗯,然后的话呢,我们再看下一道题。
06:06
这道题的话呢,看看什么意思,有的同学呢,做这道题还特别多的,都懵了啊,其实你不用把它想的太复杂,当然通过这道题呢,我们也想说明一些问题,看一看。声明了两个变量,一个是X,一个是Y,再给这两个变量复制以后,我们看一下下面的这样的一些情况,能不能复制成功,考察的内容有这样几个,第一个首先明确X和Y是什么类型的变量,先问X是什么类型,就是准确的,把它说说的清晰一点啊,X是什么类型?准确的说应该叫int型的一维数组。或者叫异位数组元素是int型的。对吧,好Y。
07:01
In的型的二维数组,这些一定要明确啊,它是int型的二维数组,咱们说那个呃类型可以合并它,这其实是一个合并的情况,对吧。嗯,这个你别晕了啊,就是咱们前面不是说过,你要定义变量,那就独立的定义,比如定了X啊,因特定义个Y,咱要是XY类型一样,咱这不是可以有逗号这样合并起来定义吗。对对,但是这个里边呢,就是你要是前面再加一个中括号呢,这XY就都是一位的,嗯,它在这块呢,补了一个。它不就是由原来的。这个结构和这个结构拼一起的嘛,哎,所以要看清楚这个Y呢,是一个二维的in的形啊,二维的OK,这是我们考察的第一个点,先得确定XY的类型。考察在第二个知识点,这变量在赋值的时候还有一些规则吗?当然了。
08:01
哎,我们说呢,是不是你要么是同一个类型的,是不是才可以复制啊。一种就是要么是通过类型的,比如说我这是一个false,你这个false是不是只能付给这个布尔型啊。啊,我这是一个1.1,你是不是得给它分成一个负电型啊,啊就是第一种,就是它是什么类型的,你就付给什么类型啊,或者我这个X我定义成是一个1.1浮电型的,你把X付给Y,那要求这个Y呢,也得是一个浮电型的啊,这是是什么类型就付给什么类型,这是第一种,那除了这种情况之外呢,我们说还可以怎么着啊。前面讲的是不是讲过自动类型提升啊,哎,我这个X呢是一个一,哎我这个Y呢是一个double,呃,X负给Y是不是也可以啊,对这呢,其实就考察的这个点啊,就这里边呢,能不能通过编译,你就看看我这个变量赋值的时候呢,满不满足我们说允许负的这样的一个规则啊,行一个一个来,首先第一个是否能通过变异。
09:06
不能吧,因为。它是二维的,它呢,它连一位都不算,它不就是一个in的形的一个数吧,哎,对啊,这个呢。可以吧,可以对,就是X是一维的,这是不是二维的一个元素,不就是一维的吗?哎,一维一维可以负哈,哎,这个呢,嗯,不可以吧,它是意味着这呢是一个int型的一个数,对啊,然后这呢,对,应该更不可以了啊,这个写法都错是吧,它都没有这个这样的两个元素了啊,它是一个一维的,然后这呢,可以啊,这是一个in特形的数,这也是个in的形的数,嗯,这个呢不可以,Y呢是一个二维的,你当然呢,又是个一维的啊,这就是个no。
10:05
行,这个能理解不?这个啊,有的同学这个可容易蒙的啊,就是刚才说了,就考察两个点啊,第一个你先确定XY的类型,第二个呢,呃,类型跟类型之间变量赋值的时候呢,我们的规则要么是同过类型,要么呢就满足智能类型提升,哎,才可以去复制啊行,这是我们这两个问题。
我来说两句