数组的概念

数组

变量同时只能存出一个数据,新的数据进来,老的数据就会被替换掉

要相同时存储多个数据,需要使用容器

java中的[数组]就是容器,和变量差不多,但是可以同时存放多个数据

数组的特点:

可以同事存放多个数据

多个数据必须属于同一种数据类型

数组的长度在程序运行期间,不可改变

 

数组的定义格式:

变量:

数据类型 变量名称 = 数据值;

int num =100;

动态初始化格式;

数据类型[] 数组名称 = new 数据类型[长度]:

int [] array = new int[3];

格式解释:

左侧数据类型:数组中存储哪种类型的数据

左侧[]:表示他是一个数组

数组名称;就是一个标记,方便使用

new:表示是创建数组的过程

右侧的数据类型;和左侧保持一致

长度:数组中可以存储的数据的数量

 

数组的创建第二中格式(标准格式的静态初始化):

格式:

数据类型[ ] 数组名称 = new 数据类型[ ] { 元素1.元素2.元素3....}:

int[ ] arrayA = new int [ ]{ 10.20.30.40.}:

不需要指定长度,右侧[ ]留空,将数组中的所有元素写字{}中

注意事项:

动态初始化:指定长度

静态初始化:指定内容

静态初始化不需要指定长度,编译器根据元素的数量,推算数组的长度

 

创建数组的第三种格式(简化格式的静态初始化):

格式:

数据类型[ ] 数组名称 = { 元素1.元素2.元素3...};

int[ ] arrayA = {1.2.3};

定义变量:等号左边

创建数组:等号右边

注意事项:

简化格式的静态初始化,虽然没有写new,但是仍然有创建数组(new)的过程

标准格式的静态初始化,虽然没有写长度,但是编译器根据元素的数量,可以推导出来

动态初始化和标准格式的静态初始化,可以分成两部完成

简化格式的静态初始化,不能分两步完成

 

数组访问:

数组的名称:代表的是数组的地址值(16进制的数字,哈希值)

数组元素的变化(索引):数组中的每个元素都有一个编号,是int数字,从0开始,最大的编号为数组的长度-1

数组名称(索引编号):

数组名称:代表的是具体那个数组

索引编号:代表的是数组中的那个元素

 

数组操作的常见问题:

索引越界异常:ArrayIndexOutOfBoundsException

当访问数组元素时,索引编号不存在(超出了数组的索引编号范围0-长度-1),就会报出此异常

解决方案:不让索引越界

空指针异常:NullPointerException

当数组类型的变量,不再指向堆内存中的任何数组时,使用数组元素,报出此异常

 

数组遍历[重点]:

遍历:逐一,挨个获取数组中的元素

遍历数组的快捷键:数组名.fori

获取数组元素最大值

假设索引为0的元素是最大的

以此获取索引0后面的元素,和当前假设的元素进行比较

只要后面的元素比当前元大,就交换

最后留在擂台上的,就是最大值

获取数组元素最小值:

假设索引为0的元素是最小的

依次获取索引0后面的元素,和当前假设的元素进行比较

只要后面的元素比当前元小,就交换

最后留在擂台上的,就是小值

 

数组作为方法的参数

任意确认的数据类型,都可以作为方法的参数(根据需求进行确定)

数组作为方法的参数,传递的是地址值[]非常重要]

数组作为方法的返回值

方法的返回值只能有1个,如果方法最终由多个结果需要返回,需要将多个结果存入到数值中,返回数组

posted @ 2018-05-24 22:36  布凯!  阅读(369)  评论(0编辑  收藏  举报