Java中一维,二维数组的简单使用
数组是具有相同数据类型的一组数据的集合,可以存储一定量的数据,在以后的集合里面也会涉及到数组的知识,所以再学习Java基础的时候,一定要学会如何去声明数组以及数组的简单使用。
一、创建一维数组:
使用new关键字进行内存分配,在使用数组之前,要先定义好数组变量的类型。
- 方式一:先声明,再new分配内存
int[] arr1;//arr1和arr2两种声明方式都可以
int arr2[];//声明了int类型的数组,数组的元素类型只能是int型的
String[] arr3;
char[] arr4;
double[] aee5;
float[] arr6;
//为定义了的数组arr1分配内存,指定了arr1的长度为6
arr1 = new int[6];
//打印数组长度
System.out.println(arr1.length);
- 方式二:声明数组和分配内同时进行
int[] arr1 = new int[6];//声明了int类型的数组,并指定内存大小为6
char[] arr2 = new char[10];
注意:指定了长度为6,但是数组的下表是从0开始的,里面元素的下表分别为:
a[0],a[1],a[2],a[3],a[4],a[5]
这六个,使用数组的时候要注意对下表的操作,避免发生下表越界或者空指针异常
二、一维数组的初始化
- 方式一:比较复杂
int[] arr1 = new int[]{1,2,3,4};
- 方式二:简单粗暴
int[] arr2 = {1,2,3,4};
三、一维数组的使用:
public class Test_01 {
public static void main(String[] args) {
//定义数组并赋值
int[] arr = {1,2,0,23,43,45};
//数组的遍历,arr.length可以获得数组的长度
for (int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "]:" + arr[i]);
}
}
}
结果如下:
看完了一维数组的声明和使用,有没有发现和类的普通成员的定义有相似之处呢?这些知识点是必须要熟练掌握的哦,接下来我们看看二维数组吧:
四、二维数组的声明
- 方式一:先声明,再new分配内存(类比一维数组的创建)
int[][] arr;
arr = new int[3][4];
- 方式二:声明数组和分配内同时进行
int[][] arr = new int[3][4];
五、二维数组的初始化(类比一维数组的初始化)
- 方式一:比较复杂
int[][] arr = new int[][]{{12,23,34},{45,56,67},{21,32,43},{76,65,54}};
- 方式二:简单粗暴
int[][] arr2 = {{12,23,34},{45,56,67},{21,32,43},{76,65,54}};
六、二维数组的使用:
//定义数组并赋值
int[][] arr = {{1,2,3},{2,3,4},{3,4,5}};
//数组的遍历,可以使用嵌套fro循环
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print("arr["+i+"]["+j+"]="+arr[i][j]+" ");
}
System.out.println("");//每次遍历完一行就换行;
}
运行结果
七、使用数组的常见错误:
- 下表越界异常:
int[] arr = {1,2,3};//长度为3,只能操作arr[0],arr[1],arr[2]这三个元素
System.out.println(arr[3]);
//执行上面的代码会报以下错误
//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
- 空指针异常
- 这一段代码结果是null
public class Test_01 {
public static void main(String[] args) {
//定义了Person类型的数组,里面还未赋值
Person[] arr = new Person[3];
System.out.println(arr[2]);
}
}
class Person{
int age;
}
//运行结果是null
注意:因为定义了Person类型的数组,指定了长度,但并未初始化,里面的元素还没装载Person类型的对象,接下来的操作将发生空指针异常(仔细看区别,思考改如何改正):
- 这一段是空指针异常
public class Test_01 {
public static void main(String[] args) {
//定义了Person类型的数组,里面还未赋值
Person[] arr = new Person[3];
System.out.println(arr[2].age);//元素还未存在,这样调用会报空指针异常
}
}
class Person{
int age;
}
//运行结果是:Exception in thread "main" java.lang.NullPointerException
学习Java基础的时候一定要多加总结,刚学的时候踩的坑越多,以后可以踩的坑才会越少。