数组的定义与使用
数组:一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。
数组是引用数据类型。
一,一维数组
(一)动态初始化——先开辟空间,再使用下标索引赋值。
1,数组类型【】数组名称 = new 数据类型[长度]
- 通过下标访问,从0开始
- 数组中的元素都是该类型的默认值。
- 数组是一个有序集合——通过for循环遍历。
- 在Java中有一种动态取得数组长度的方法:数组名称.length。
public class ArrayDemo{
public static void main(String[] args) {
int[] x = new int[3] ; // 开辟了一个长度为3的数组
System.out.println(x.length) ;
x[0] = 1 ; // 数组第一个元素
x[1] = 2 ; // 数组第二个元素
x[2] = 3 ; // 数组第三个元素
for (int i = 0; i<x.length ; i++) {
System.out.println(x[i]) ; // 通过循环控制索引下标更改
}
}
}
2,数组本身除了声明并开辟空间之外还有另外一种开辟模式。
分步进行数组实例化。
int[] x = null ;
x = new int[3] ;
数组属于引用数据类型,因此在使用之前一定要开辟空间(实例化),否则就会产生NullPoninterException。
(二)静态初始化——在开辟空间的时候直接赋值
简化格式:数据类型[] 数组名称 = {值,值,…}
完整格式:数据类型[] 数组名称 = new 数据类型[] {值,值,…}
· 方括号中不需要写长度。
public class ArrayDemo{
public static void main(String[] args) {
int[] x = {1,2,5,55,555,223,45545,666465,6443} ; // 静态初始化定义数组
// int[] x = new int[]{1,2,5,55,555,223,45545,666465,6443};
//上面两行代码意义一样呢,都是初始化数组。
System.out.println(x.length) ;
for (int i = 0; i<x.length ; i++) {
System.out.println(x[i]) ;
}
}
}
(三)匿名数组——即不起名字的数组
举例:
public class ArrayDemo{
public static void main(String[] args) {
System.out.println(new int[]{1,2,5,55,555,223,45545,666465,6443}.length) ;
// 此处为匿名数组
}
}
二 ,二维数组
二维数组有行有列。
(一)动态初始化
数据类型[][] 对象数组 = new 数据类型[行个数][列个数] ;
(二)静态初始化
数据类型[][] 对象数组 = new 数据类型[][]{{值,值,…},{值,值,…},…}
举例:
public class ArrayDemo{
public static void main(String[] args) {
int[][] data = new int[][] {
{1,2,3},{4,5},{6,7,8,9}
};
// 在进行输出的时候一定要使用双重循环
for (int x = 0; x<data.length ; x++) {
for (int y = 0; y<data[x].length ;y ++) {
System.out.println("data{"+x+"]["+y+"]="+data[x][y]+"、") ;
}
System.out.println();
}
}
}
(三)元素默认值
若数组中的元素未被初始化,则会有一个默认值。
默认值就是数组类型的默认值。
具体各类型的默认值如下:
byte,short,int,long | 0 |
---|---|
float,double | 0.0 |
char | 一个空字符,即’\u000’ |
引用数据类型 | null,表示变量不引用任何对象 |
boolean | false |