04_数组概要
本章内容 认识数组 使用数组 与数组相关的操作 排序 递归 初识数组 现在假如我们要存储30位同学的考试成绩,那解决的方法是声明30个float类型的变量,如下面代码: float score1, score2, score3, score4…… 这样做显然比较复杂,这时我们可以使用编程语言给我们提供的另外一种知识,即声明一个长度为30的数组。 如下代码:float[] score = new float[30]; 这样,一个变量就可以解决上面三十个变量的问题。同时,原始声明三十个变量内存空 间不一定是连续的,而数组内各元素的内存空间是连续的,循环遍历数组元素速度更快些。 数组 数组是一组相关数据的结合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组。 数组的优点: 数组只要声明一次,就可以存放多个类型相同的数据。利用数组,可以简化程序代码,提高开发效率。例如: 需要使用100个变量定义:int i1;i2;i3.... 使用数组定义:int i[100] 数组声明 可以使用--数据类型[] 变量名;或者--数据类型 变量名[];声明数组。中括号可以放在数据类型的后面,也可以放在变量的后面,但建议您放在数据类型的后面。如下: int[] ages; //存储多个年龄 float score[]; //存储多个成绩 数组名的命名规范只要遵循变量的命名规范即可。 数组声明实际上是在栈内存中保存了此数组的名称,接下来便是要在堆内存中配置数组所需要的内存,其中“长度”是要告诉编译器,所声明的数组要存放多少个元素,而“new”则是命令编译器根据括号里的长度开辟空间。 数组声明三种方式 数组定义方式: 第一:直接定义好长度 int[] a=new int[4]; 第二:静态定义:不使用new关键字直接定义里面的值 int[] b={2,3,4,5,6}; 第三:使用new不定义长度,直接在花括号里面定义 int[] c=new int[]{2,3,6,4};//使用new在花括号中定义 在创建数组时除非给数组赋初值,否则必须给数组初始长度 举例: 一维数组 一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的。 要使用java的数组,必须经过两个步骤:(1)声明数组、(2)分配内存给该数组。这两个步骤的语法如下: 声明形式一: 声明一维数组:数据类型 数组名[] = null; 分配内存给数组:数组名 = new 数据类型[长度]; 声明形式二: 声明一维数组:数据类型[] 数组名 = null; 声明及开辟数组空间 声明数组: int score[] = null; null表示引用数据类型的默认值 int score[]; 为数组开辟空间 score = new int[3] 堆栈内存的解释 数组操作中,在栈内存中保存的永远是数组的名称,只开辟了栈内存空间,数组是永远无法使用的,必须有指向的堆内存才可以使用,要想开辟新的堆内存则必须使用new关键字,之后只是将此堆内存的使用权交给了对应的栈内存空间,而且一个堆内存空间可以同时被多个栈内存空间指向, 即如下图: 声明数组的同时分配内存空间 声明数组的同时分配内存: 数据类型 数组名[] = new 数据类型[个数] int score[] = new int[10]; 声明一个元素个数为10的整型数组score,同时开辟一块内存空间供其使用 在java中,由于整数数据类型所占用的空间为4bytes,而整型数组score可保存的元素有10个,所以上例中占用的内存共有4*10=40个字节 数组的赋值与取值 数组除去在创建时直接赋初值外,还可以在创建后给各个元素赋值,这里我们要引出下标的概念,下标即数组中各元素的位置坐标,还要知道现实生活中第一个用1表示,但在计算机编程世界中第一个大多用0表示,所以数组的下标也是从0开始,如我们声明一个长度为5的数组,并赋初值:int[] num = new int[]{9, 78, 5, 89, 27};如下图 我们可以通过数组名[下标]来得到数组某个元素的值或者赋值。同时要注意数组下标从0开始到length-1。 演示 数组中元素表示的方法 要想访问数组里的元素,可以利用索引来完成。Java的数组索引编号由0开始,以一个的score[10]的整型数组为例,score[0]代表第一个元素,score[1]代表第二个元素,score[9]为数组中第10个元素(也就是最后一个元素)。 数组的静态初始化 数组的内容分为动态初始化和静态初始化两种,之前的形式是先声明在赋值方式完成,也可以通过静态初始化为数组赋值。 如果想直接在声明时就给数组赋初值,可以利用大括号完成。只要在数组的声明格式后面加
原创力文档

文档评论(0)