00:01
那么关于eclipse的使用呢,我们就先说到这儿,那接下来呢,我们这个开始使用我们eclipse呢,去讲咱们这个新的内容,咱们呢该讲这个第三章叫做数组,哎,这一章呢,也是我们说基本语法之后的一个内容,那对于不同的语言来讲呢,呃,多少呢也会有相关的像数组这样的这个结构。啊,一定会有的啊,只不过只不过呢,这个名字可能不叫这个。啊,你像这个在Python当中呢,这个数组就叫做列表了。啊,就叫做列表了啊,就是可能名字不叫这个,但是一定会有类似这样的结构,那我们就想问一个问题,数组到底要干什么?啊,那就是咱们这章要学习的点。叫数组。那数组首先第一节我们先对数组呢进行一个概述啊,大家看我们这样一个PPT。数组这个英文的话呢,叫array。叫瑞。什么是数组呢?是多个相同类型的数据按照一定的顺序排列的集合。
01:02
其实这就是他的一个描述了,后边又说了一下,说并使用一个名字呢来命名,并通过编号的方式呢,对这些数据呢,进行一个统一的管理。可能稍微有点抽象哈,大家呢,直接看我右边呢,列出来的这样两个例子。啊,这也快中午了,大家呢,可能用美团外卖啊,或者饿了么呢去点外卖,哎点外卖的时候呢,你会看到这个显示的这个信息有很多哈,哎涉及到说这呢,就是每一个这个你外面的这个菜吧。或者你要点的这个饭的一个图片。嗯,这块呢,就是呃,具体的你这个菜名,或者叫这个饭名。真正有具体的它的价格。这块呢,还有这个点赞数,或者别人这个到底别人点过这个多少多少份,哎,都有这样的一些信息。呈现给我们。那很显然呢,在这里边儿呢,我们有很多是描述的是同一个事儿的这种情况啊,像这呢,都叫菜名了。
02:01
啊,都是菜的那名字。啊,那这时候呢,我们就可以考虑呢,我把这个菜名呢,呃。抽取出来,我用统一的一个结构呢去存储。哎,就类似于我这里边放的它一样,哎,那么整个这个结构呢,咱们就用一个变量来命名。就用一个变量来命名,那么这个变量呢,实际上就是一个数组类型的变量。然后呢,这里边儿的每一个具体的,呃,这个菜名。都作为我们这这个数组这个变量的一个元素出现。哎,都作为一个元素出现。那除了这个之外呢,还有这个具体这个菜的这个价格的啊,那这个价格的话呢,我们这这些都是描述价格的,我就把这个所有的价格呢,也都提取出来,拿整个的一个叫数组这样的一个变量呢去描述,然后这个每一个具体的价格呢,都作为我这个数组中的一个元素出现。呃,那整个这个页面的话呢,我们其实除此之外呢,还有这个专门来表示这个图片的图片这块呢,其实不是真正的放这个图片了,你可以存每一个图片它的这个地址。
03:06
哎,在服务器网络端的这样的一个地址放在这儿,这个字符串啊,后边这个点赞数呢,点赞数你可以用一个int型的一个数组,诶给它放在这儿,那回头呢,我们这整个这一项。假设是你的第一项。咱们呢,就可以去这个数组中取第一项,这个数组中取第一项,这个取第一项,这个取第一项,把这四项呢,给它诶拼出来放在这。然后第二项呢,你可以这里边取第二项,第二项第二项第二项就全都放在这儿。哎,就这样的来操作。我们就不怎么着了,你不是说这个页面你看就放了这四个菜啊,然后这里边每一个都独立的定义成一个变量,那你想想这个页面这得多少个变量,操作起来就非常麻烦,所以我们呢,就把是同一个类型的,描述的是同一个事儿的这种数据呢,给它集合在一起,哎,统一的定义成一个变量。然后通过这种角标的方式呢,咱们来调这里边儿具体的每一个元素,这就是我们设计数组的一个想法。
04:07
啊,一个想法就好比是什么呢?就好比是比如说咱们班的同学一样,咱们人还挺多的哈,那原来的话呢,咱们每一个人的姓名都定义成一个变量。那后来发现哇,维护起来好麻烦呀,怎么办呢?把大家呢统一的定定义成一个数组,这个数组呢,就是来存放大家名字的一个数组。然后定义完以后呢,诶,我把大家的名字呢,都放到我们这个数组的每个位置上。哎,都放在那个位置上,回头呢,你凡是需要这个用大家名字的时候,我就直接调这个数组就完了,你想要哪个,我就通过对应的这样一个编号,这个编号其实我们叫做索引呢啊,去找到你对应的这个元素就行,而不像原来一样,每一个都是一个变量名,变量名,变量名太多了,维护起来呢其实很麻烦。这也就是我们有数组这样的一个背景。啊,大家呢,去理解一下啊,那咱们把这个事呢说明一下,嗯,这个后边呢,写代码呢,我这就。
05:02
每次咱们一天新的的时候呢,我就新建一个工程了,今天呢是咱们这个第六天我就写了叫D06。哎,然后呢,这个src下呢,我们写代码先得创建一个包。啊,卡点艾特硅谷点Java,每天的这个新知识呢,我都放在这个Java包下了就啊。哎,在这个下面呢,我们现在去创建一个具体的类,关于数组的测试,或叫A的一个test。然后finish。行,然后在这个位置呢,我们去写这个注释信息。哎,首先第一个关于叫数组的概述。哎,刚才呢,我们提到这个数组的相当于数组哈。哎,它的一个概念。或者叫他的一个理解。把这个呢,我们拿过来。感觉看着是比这个ID plus要舒服一点哈。
06:01
可能大家刚开始用,现在还有点不习惯,一旦你上手两天以后让你再退回去用ID的plus,你肯定不乐意啊。哎,这里也提到了,说数组,刚才咱们说过的啊,多个相同数据类型,按照一定顺序的排列的一个集合。啊,是用一个统一的名字,哎,并用编号的方式来进行统一管理,这里呢,我们就提到了数组的几个要素。哎,或者大家数组相关的概念。后边呢,关于数度里边的一个概念,我们都这样去起名字了哈,第一个它这里边儿提到了说并使用一个名字来命名。哎,这个呢,就是我们叫的叫数组名。哎,叫数组的名字啊。然后呢,说多个相同数据类型的数据。诶,那么这里边这个数据就相当于咱们这里边儿这个具体的某一个菜名或者是价格一样,哎,我们把它呢,叫做数组的元素。原来呢是多个变量了,现在这多个变量都作为一个变量数组名这个变量的一个每呃这个一个元素了,那就有很多的元素了啊。
07:10
然后呢,下边说按照一定的顺序排列。这个呢,其实是指明了我们数组的一个特点。啊,这个我们也可以。在这块写一下啊,叫数组的特点。按照一定顺序,这个特点呢,就是数组是有序的。啊,有序排列的。这个很显然。啊,你像刚才咱们说的这个,大家中午点餐这个事儿,诶咱们这个呢叫定价,这个呢叫菜名,他们必须得对应起来哈,诶比如说半海蜇它的价格呢,我们回头就拿这里边的第一项去对应,这个第二项呢,就拿它的第二项去对应,你不能这里边呢说无序乱排。乱排的话呢,可能这个菜很贵是吧,突然碰到一个菜价很低的,那不就乱套了吗?所以我们这里边呢,你最后你你最初填完以后的这个顺序,它是有保证的啊,不能这个乱来。
08:04
来去调整这个顺序啊,它是有序的。嗯,使用一个名字命名,并通过编号的方式呢,进行一个统一的管理。那这里边儿这个编号呢,就是我们所说的数组的角标。或者叫下标。啊,有的时候呢,也称作叫索引。啊,其实更这个学名上来讲,叫索引更合适啊。当然回头我们这几个概念呢,都都会去说,说的呢,其实都是索引。啊,都会是是都是索引啊,那就比如说咱们这里边,呃,像这个第一项叫半海蜇。这个呢,它就有一个索引值。哎,这个索引呢,是从。哎,一会我们还会说啊,是从零开始的。哎,从零开始的,就是我要找这个角标是零的话呢,找到的就要半海蜇,我找角标是一呢。
09:00
招的就是这个龙须菜。然后还有一个概念呢,没在这里边明显的看出来哈,哎,这里边儿呢,我们叫做数组的长度。哎,什么叫数组的长度呢?对,就是咱们里边你存储的这个元素的个数啊,元素就是这个意思啊。元素的这个个数。我们说多个相同类型的数据啊,排列一起啊,这个有一个变量名叫数组名了,那你到底有几个呀?哎,我们这个就用数组的长度呢来表示。哎,就是这个意思。行,这就是咱们说这个相关概念,以及从这出发呢,我们引出来了数组的一个特点。啊,这呢,就是我们对这个数组呢,先进行了一个这样的描述啊,通过概念出发,然后呢,下一页PPT我们再来看还有哪些新的点。提到这样的几个事情。首先。
10:02
说数组本身呢,是引用数据类型。想想是吧。咱们在讲变量的时候呢,提过。说数组呢,是这个已数据类型,变量呢有三类,有类数组,还有。借口。那这三种啊,哎,数组呢,属于已数据类型的。啊,那这个呢,我们先明确一下这个问题啊。哎,数组。哎,属于。引用。在数据类型的变量。啊,就像咱们刚才上面写你使用同一个名字命名,这其实就是有一个变量了啊,这个变量就要数组名这样一个变量,它呢,这个数组本身呢,它属于引用数据类型的。就像我们刚才上面这个创建好以后的。这个一样啊,整个呢,我要用一个变量来表示这些数据啊,那这就是一个引用类型的变量,那么里边的每一个元素。
11:01
大家看。我这个元素是什么类型啊。是不是string类型啊。哎,这里边儿大家要区分出来,数组的类型是叫引用类型数组的元素。啊,又涉及到一种类型,那我们这个当中数组的元素的类型,这是string型,那么这里边儿数组的元素的类型什么呀。对,Double呗。这是double了,对,那就意味着呢,我们数组是引用数据类型,但是数组的元素可以是基本数据类型。也可以是。引用数据类型。因为你string这不就是一个典型的引用数据类型吗?是一个类类型的是吧。所以这呢,大家要区分这个概念啊,数组属于引数据类型的变量,那么数组的元素。哎,我们说既可以是。哎,引用呃,这个基本数据类型。
12:00
哎,那么也可以是。引用数据也行。这个。能理解这个事儿吧。能理解,就是大家心有这样的印象,一会呢,咱们写代码的时候呢,呃,这个来验证这个问题啊。呃,这个呢,你就通过咱们刚才列的这个例子呢,大家去体会啊,呃,在下边的话呢,就提到说创建数组的对象呢,他在内存中是开辟了一整块联系的空间,这就涉及到我们这个底层的这个数据的结构的问题了啊。创建的数组的对象在内存中呢?它是一段连续的空间。而数组名中的引用呢,实际上是用的这个首地址,后边这个大家先不用管,先关注一下前面这个问题。哎,这是我们说的第五个点,它。这个我们在内存中开辟一块空间呢,去存储我们这个菜名,那么内存中这个空间呢,它一定是连续的。就是上面呢,你找到这个半海蜇以后,紧接着下面呢,它就是龙须菜,中间不会有任何的空间的。
13:04
它是在内存中连续的一块空间。呃,他呢,跟我们说的那个不连续是相对的啊,在数据结构当中,这个我们一说就说多了啊,数据结构当中像它呢,就是典型的连续的,还有另一种不连续的。我们把它叫做。列表。啊,比如说第一个数据在这儿。然后第二个数据呢,中间可能有很多别的东西啊,他就第二个又跑到这儿了。诶,然后呢,我第一个数据完了以后呢,我这有个地址,我只能告诉我第二个元素在哪,我就找到它了,那第二个元素呢,他也能够记录一个地址,他能找到第三个元素。他在内存中不是连续的。啊,但是咱们这个数组呢,是典型的一个连续啊,内存空间的一个结构,就是他在内存中是必须开辟这一块,第一个啊,第二个完了,第二个第二完了第三个,第三完了第四个,这叫连续的。后边这块呢,就又提到一个问题,说数组的长度一旦确定以后呢,就不可以去修改。
14:06
呃,一旦确定以后呢,就不可以去修改,其实这块呢,我们都可以把它呢,都归结为是我们这个数组的特点也行啊,这是第一个直接我们这样处理一下啊第二个。怎么叫长度,一定要确定,不能修改,比如咱们在内存中我开辟了一条空间,这呢来存储咱们这个,比如说这个菜名或者大家的姓名就放在这。那你可能放着放着,放着放着,突然发现我已经放到最后一个了。还想放?还想放?你是不是就想说我再补一补是吧,这时候注意不能补。啊,你说我在这后边补几个,这这不靠谱,补不了。就是长度呢,我们一旦定好这么多了,内存中就只能最多放这么多。这是它的一个显著的特点啊,就不可以再去给他修改了。那你要说真的,咱们这个想把大家的性命,比如都存到数组中,我确实盛不下了,想想这个再加一些,那怎么办?
15:07
对,那你只能是造一个新的。造一个新的,然后呢,你把这个新的就长一些啊,把大家这个姓名的话呢,你再给他再copy过来,只能这样做。啊,不能说在后边补几个,那那不行啊。这是这个问题,然后下边呢,这涉及到对这个数组的一个分类,哎,这个我们再提一下这个啊,专门的我们这叫一个四。来数组的一个分类。哎,前面咱们讲变量的时候也分也讲了,讲这个分类哈,那这呢,咱们也提一下这个数组呢,如果说啊第一个啊,按照这个。维度啊维数。按照位数呢,我们分成叫一位数组。二位数组。三维、四维等等。哎,多维的啊,就二维以上的,咱们都可以叫做多维的了啊。嗯,然后呢,第二个。是按照。
16:01
哎,按照这个数组元素的类型来分。咱们说了数组的元素可以是基本数据类型,也可以是引入数据类型,对,那咱们就可以分成叫基本数据类型。变量的数组。呃,基本数据类型元素的啊数组。也就是说它的元素呢,是基本数据类型的啊,哎,还有的另外一个。引用数据类型元素的数组。就分成这样两类。就是分类的这个角度不一样了啊。那我们呢,就关于这个数组的概述呢,就说到这儿,咱们下午的时候呢,上来就先来讲一讲这个一维数组。啊,那一位数组呢,这个你要给他展开一下,那个元素你要关注什么类型,它有有基本的,有引用的,这个咱们就都讲一讲。啊,那一维呢,讲完以后呢,哎,这个咱们这个在开发当中呢,二维也是会出现的,咱们再给大家讲一讲二维数组是什么样子的。
17:03
那咱们这个讲数组的核心内容就是大家呢,需要掌握一位数组和二位数组的一些基本的使用,在在开发当中呢,诶根据的实际这个情境啊,诶能够去创建相应的这个数组,去保存你相关的数据就可以了。就是这样啊。
我来说两句