Java中数组的那些事儿(1):数组的数据类型与数组的初始化
数组对于学过编程的人来说都不会陌生,它是最常用的一种数据类型。数组其实就是用于存储同种类型数据的集合。接下来我们就来聊聊关于Java中数组的那些事儿。
- Java中数组的数据类型
Java中数据类型一共有两种:1.基本数据类型 2.引用数据类型。而在Java语言中数组属于引用数据类型(下图给出了Java中的数据类型图)。正是因为数组属于引用数据类型这一属性决定了数组的特性,这些特性会在后续数组使用的讲解中一一提到。数组虽然属于引用数据类型,但有一点需要明确:数组中的元素既可以是引用数据类型也可以是基本数据类型。 - 数组的初始化
Java中数组的初始化一共有两种方式:1.静态初始化 2.动态初始化。我们来看下面两个例子:
(1)一维数组的初始化
//定义字符串型数组(数组元素的类型为字符串型)
String[] uncommon_words;
//数组静态初始化
uncommon_words = new String[]{"茕茕孑立","沆瀣一气","踽踽独行","醍醐灌顶"};
//遍历打印数组
for(int i = 0;i<uncommon_words.length;i++){
System.out.println(uncommon_words[i]);
}
//定义整型数组(数组元素的类型为整型)
int[] number;
number = new int[4];
//遍历打印数组
for(int j=0;j<number.length;j++){
//数组动态初始化
number[j]=j;
System.out.println(number[j]);
}
由以上代码块不难看出,一位数组数组的静态初始化和动态初始化的区别在于:定义数组时是否直接对数组元素进行赋值。定义数组时直接对数组元素赋值的为静态初始化,反之为动态初始化。
(2)二维数组的初始化
二维数组的初始化与一维数组类似,但是也有不同的地方。我们来看下面的代码:
int[][] array_one = new int[][]{{1,2,3},{4,5},{6}};//静态初始化
int[][] array_two = new int[2][2];//动态初始化方式1
int[][] array_three = new int[2][];//动态初始化方式2
array_three[0] = new int[1];//声明数组3的第一个小组的元素个数
array_three[1] = new int[2];//声明数组3的第二个小组的元素个数
/*
* 错误的动态初始化方式
* array_two[][] = new int[][2];
* array_two[][] = new int[][];
*/
System.out.println("数组三的长度为:");
System.out.println(array_three.length);
System.out.println("array_three[0]的长度为:");
System.out.println(array_three[0].length);
System.out.println("array_three[1]的长度为:");
System.out.println(array_three[1].length);
//遍历二维数组
System.out.println("array_three的元素为:");
for(int i=0;i<array_three.length;i++){
for(int j=0;j<array_three[i].length;j++){
System.out.print(array_three[i][j] + " ");
}
System.out.println();
}
以下是程序运行输出:
这里提一下数组的长度,对于一维数组,数组的长度可以理解为数组中元素的个数;对于二维数组可以理解为行数与列数。
不难看出,二维数组的静态初始化与一维数组的静态初始化并没有什么区别,都是在定义数组的时对数组元素进行赋值。而二维数组的动态初始化则有两种方式:1.行与列的长度全部指定 2.行的长度指定,列的长度不指定。因此我们也可以知道动态初始化的错误方式就是行列都不指定或只指定列没有指定行。