数组是编程语言中最常见的一种数据结构,它可用于存储多个数据,一个数据被称为数组元素,通常可以通过数组元素的索引来访问数组元素,包括为数组元素赋值和取出数组元素的数据。Java语言的数组则具有它特有的特征。
》理解数组:数组也是一种类型
Java的数组要求所有数组元素具有相同 的数据类型。因此,在一个数组中,数据元素的类型是唯一的,即一个数组里只能存储一种数据类型的数据,而不能存储多种数据类型的数据。
》第一种
public static void main(String[] args) { //声明数组 int[] score; //分配数组空间 score = new int[5]; //向数组中存放数据 数组下标从 0 开始 score[0] = 80; score[1] = 85; score[2] = 87; score[3] = 90; score[4] = 95; //在 int类型中存放 字符串类型数据 //score[4] ="abc"; //Type mismatch: cannot convert from String to int for (int i = 0; i < score.length; i++) { System.out.print(score[i]+" "); } }
》第二种
public static void main(String[] args) { //第二中声明数组的方式 它将声明数组、分配空间和赋值合并完成。 int[] score = {80,85,87,90,95}; //遍历数组 for (int i = 0; i < score.length; i++) { System.out.print(score[i]+" "); } }
》计算5名学生成绩的平均分
public static void main(String[] args) { Scanner input = new Scanner(System.in); //声明一个成绩数组 int[] scores =new int[5]; int sum=0; //成绩总和 for (int i = 0; i < scores.length; i++) { System.out.println("输入第"+i+"名学生的成绩:"); scores[i]=input.nextInt(); sum+=scores[i]; //成绩累加 } System.out.println("学员平均分是:"+(double)sum/scores.length); }
》二维数组
语法:
数组类型 [][] 数组名;
“[][]” 用于表明定义一个二维数组,通过多个下标进行数据访问。
public static void main(String[] args) { //声明二维数组 int[][] s = new int[][]{{80,66},{70,54,98},{77,59}}; for (int i = 0; i < s.length; i++) { System.out.println(i); for (int j = 0; j < s[i].length; j++) { System.out.print(s[i][j]+" "); } System.out.println(); } }
二维数组在内存中的分配原理图:
从上图我们看出,表面看来定义了一个二维数组,但是从内存分配原理角度讲,实际上是定义了一个一维数组。数组名为s,包括3个元素,分别为s[0]、s[1]、s[2],每个元素是整型数组类型,即一维数组类型。而s[0]又是一个数组的名称,包含5个元素,分别为s[0][0]、 s[0][1]、s[0][2]、s[0][3] 、s[0][4] ,每个元素都是整数类型。s[1]、s[2]与s[0]的情况相同。二维数组实际上是一个一维数组,它的每一个元素又是有个一维数组。