数组的概念、定义、初始化、使用(访问及遍历)及应用
1.什么是数组?
数组可以看作是相同类型元素的一个集合,在内存中是一段连续的空间;
2.怎样定义数组?
定义一个数组的格式如下:
T[] array=new T[N];
其中
T: 表示数组中存储元素的类型
T[]: 表明array是数组类型的
array:表示数组的名字,按照小驼峰命名规则来
new:用来申请数组空间的一个关键字,
该关键字申请的空间在堆上
N:是一个常量,表示数组最多可以存储多少个元素
举个例子:
//创建10个int类型元素的数组
int[] array1=new int[10];
//创建5个double类型元素的数组
double[] array2=new double[5];
//创建3个字符类型的数组
String[] array3=new String [3];
3.怎样初始化数组?
数组的初始化有两种:静态初始化与动态初始化
方式一: 动态初始化
该方式在创建数组时,直接指定数组中元素的个数;
//表明数组中元素的个数为10
int[] array = new int[10];
方式二: 静态初始化
该方式在创建数组时不直接指定数据元素的个数,
而是直接将具体的数据内容进行指定;
语法格式:
T[] 数组名 = {num1, num2, num3, ..., numn};
int[] array = {0,1,2,3,4,5,6,7,8,9};
该方式也可以写成:
int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};
需要注意的是:
(1)两种写法所表示的内容是一样的
(2)静态初始化虽然没有指定数组的长度,
但编译器在编译时会根据{}中元素的个数来确定数组的长度
(3)静态初始化时, {}中数据类型必须与[]前数据类型
保持一致
如果不确定数组中内容时,就使用动态初始化,否则一般使用静态初始化;
那学会了定义和声明数组,那数组中的元素是如何进行访问呢?
4.数组的使用?
(1)怎样访问数组
数组在内存中是一段连续的内存空间,空间的编号都是从0开始的,依次递增,该编号就称为数组的下标,通过下标就能快速访问数组中任意位置的元素;
下面看一个例子
int[] array={1,2,3,4,5,6,7,8,9};
//通过下标找到6,怎样操作呢?
//由于下标是从0开始的,因此6就是下标为5的那个元素
//因此通过以下操作就可以找到
System.out.println(array[5]); // 输出6
需要注意的点:
下标从0开始,介于[0, N)之间不包含N,
N为元素个数,不能越界,否则会报出下标越界异常
当出现一个数组,我们不清楚它的长度时,该怎么办呢?也就是如何求数组的长度问题?
(2)怎样求数组的长度?
在数组中通过 数组名.length 来获取数组的长度;
举个例子:
int [] array={3,41,34,96,5,32,4,30};
System.out.println(array.length); //输出为8,就是数组的长度
(3)怎样遍历数组?
所谓 “遍历” 是指将数组中的所有元素都访问一遍;
采用循环来进行遍历
int [] array={3,41,34,96,5,32,4,30};
for(int i=0;i<array.length;i++){
System.out.println(array[i]);//输出3,41,34,96,5,32,4,30
}
也可以使用 for-each 遍历数组,该方式是 for 循环的另外一种使用方式,能够更方便的完成对数组的遍历;
//遍历数组的另一种方式
int [] array1={3,41,34,96,5,32,4,30};
// x:表示数组中元素的一份拷贝
for(int x:array1){
System.out.println(x); //输出3,41,34,96,5,32,4,30
}
5.数组的应用
求数组中元素的平均值
public class ArrayAverage {
public static double average(int[] array){
int sum = 0;
for(int i=0;i<=array.length;i++){
sum += i;
}
//注意结果要用double表示
return (double)sum / (double)array.length;
}
public static void main(String[] args) {
int [] array={1,2,3,4,5,6};
System.out.println(average(array)); //结果3.5
}
}
欢迎大家跟我一起来学习!!!