Java数组大白话简介说明
下文笔者讲述java数组的相关简介说明,如下所示
数组简介
数组是具有相同类型且按一定次序排列的一组变量的集合
我们将数组中的每一个元素称之为"数组元素"
数组元素在数组中的位置称之为"小标"
数组小标 从0开始计数
我们将数组中元素个数称之为"数组大小"
获取数组长度方法
数组名.length
注意事项:
数组长度
在为数组分配内存的时候确定
数组长度一旦确定,则长度不可更改
怎么使用数组
定义数组 可采用以下两种方式定义数组 int arr[]; int[] arr;
为数组元素分配内存
int[] arr = new int[];
数组元素初始化
数组声明并为数组分配空间后
必须为数组元素初始化(初始化即赋值)后
才能使用数组元素
arr[0] = 891;
arr[1] = 68;
arr[2] = 77;
使用数组
数组常见操作:
求数组的最大最小值,求和,求平均值
遍历数组元素
数组元素排序
数组中元素的数量
如:
int[] arr = new int[]{901,902,11,22,35,98};
int max = arr[0];
for(int i = 1;i < arr.length;i++){
if(arr[i]>max){
max = arr[i];
}
}
System.out.println("最大值为"+max);
数组常见问题
下标越界异常
系统提示运行改程序时发生
java.lang,ArrayindexOutOfBoundsException异常
这个异常表示数组的下标越界
数组下标的界限是介于0到数组长度减一范围内的整数
数组下标超出这个范围的值就会发生下标越界异常
int[] arr = new int[]{98,87,76,88,79};
System.out.println("第5个学生的成绩是"+arr[5])//下标越界
没有分配内存空间
int[] arr = null;//没有分配内存空间
System.out.println("第1个学生的成绩是"+arr[0])
系统提示运行该程序时发生了java.long.NullPointerException异常
这个异常表示空指针异常。这个程序只为数组名称在栈中分配内存
但是并没有在堆中为数组元素分配内存
当输出arr[0]时
表示输出数组arr指向内存空间中的第一个元素
但是数组arr并没有指向任何内存空间
因此arr是空指向(即arr的值是null)
因此JVM抛出空指针异常
解决办法是为数组元素分配内存
并让数组arr指向到数组元素
数组语法错误
一些常见的语法错误:
//等号左边的中括号不允许写长度
int array1[3]=new int[]{22,66,77};
//直接为数组元素初始化时不允许指定数组长度
int array2 = new int[3]{22,66,77}
//直接初始化数组元素的代码必须写在一起
int array3;
array3 = {22,66,77}
二维数组简介
Java中定义和操作多维数组的语法和一维数组类似
使用二维数组同一维数组的步骤
1:定义数组
2:为数组元素分配内存
3:数组元素初始化
4:使用数组
定义二维数组
int[][] s; int s[][];
二维数组元素分配内存
int [][]s; s= new int[8][7];
二维数组初始化
int [][]arr = new int[][]{
{4,6,7},
{88,99,100},
{3,8,9}
}
//或
int [][]arr = {
{4,6,7},
{88,99,100},
{3,8,9}
}
二维数组遍历
二维数组遍历 常使用双重for循环
Arrays类
Arrays类是一个工具类 可方便对数组进行相关操作,如下所示 给数组赋值:使用fill 方法 对数组排序:使用sort 方法,按升序 比较数组:使用 equals 方法比较数组中元素值是否相等 查找数组元素:使用 binarySearch 方法能对排序好的数组进行二分查找法操作 将数组赋值成一个长度为设定值的新数组:使用copyOf()方法把数组复制成一个长度为设定值的型数组 将数组转换成字符串:使用toString方法将一个数组转换为一个字符串
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


