Java数组是一种复合数据类型,分为一维数组和多维数组。其中,一维数组的使用频率较高。
一维数组
一维数组的声明方式有两种:type arr [] 或者 type [] arr,其中type为数据类型,var为数组名称。
Java中使用关键字new创建数组对象,其创建格式为 type arr [] = new type[length];
数组的初始化分为动态初始化、静态初始化以及默认初始化。
- 动态初始化
动态初始化就是将数组定义和为数组分配空间和赋值的操作分开进行,例:
public class Main {
//动态初始化
public static void main(String[] args) {
//基础类型的数组
int [] arr = new int [3];
arr[0]=0;
arr[1]=1;
arr[2]=2;
Date [] date = new Date[3];
date[0] = new Date(2018, 11, 16);
date[1] = new Date(2018, 11, 17);
date[2] = new Date(2018, 11, 18);
}
}
class Date{
int year,month,day;
public Date(int year,int month,int day){
this.year = year;
this.month = month;
this.day = day;
}
}
- 静态初始化
静态初始化就是在定义数组的同时就为数组元素分配空间并赋值,例:
public class Main {
public static void main(String[] args) {
//静态初始化
int [] arr = {1,2,3};
}
}
- 默认初始化
数组是引用类型,它的元素相当于类的成员变量,因此,为数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化,例:
public class Main {
public static void main(String[] args) {
int [] arr = new int[3];
}
}
此时,数组的每个元素默认都为0.
二维数组
二维数组的声明方式为:type arr[row][col];
二维数组初始化方式和一维数组的初始化方式基本相似,但二维数组分为规则二维数组初始化和不规则二维数组初始化两类
- 规则二维数组初始化
规则二维数组的初始化就是在初始化给数组的元素赋值时,确保每个元素都已经被赋予初始值,例:
public class Main {
//规则二维数组的初始化
public static void main(String[] args) {
int arr[][] = {{1,2},{3,4},{5,6}};
}
}
- 不规则二维数组初始化
public class Main {
//不规则二维数组初始化
public static void main(String[] args) {
int arr[][] = {{1,2},{3,4,5},{5,6,7,8}};
}
}
在数组中常用的重要方法
- 填充数组方法Arrays.fill()
Arrays.fill(ar,value); ——其中,arr是数组的名称,value是要填充的值,该方法的作用是使用value值填充arr数组中的每个元素,即使arr数组中的每个元素值都为value,例:
public class Main {
public static void main(String[] args) {
int [] arr = new int[5];
Arrays.fill(arr, 7);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
输出结果为:
Arrays.fill(ar,start,end,value); ——其中,arr是数组的名称,value是要填充的值,start值要填充区域的起始位置(包含start),end值要填充区域的结束位置(不包含end),例:
public class Main {
public static void main(String[] args) {
int [] arr = new int[5];
//将所有元素填充为7
Arrays.fill(arr, 7);
//将arr[2]到arr[3]填充为5
Arrays.fill(arr, 2, 4, 5);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
输出结果为:
- 复制数组方法clone()
public class Main {
public static void main(String[] args) {
int [] arr = new int[5];
//将所有元素填充为7
Arrays.fill(arr, 7);
//将arr[2]到arr[3]填充为5
Arrays.fill(arr, 2, 4, 5);
//将数组arr复制到数组b中,使b和arr相同
int [] b = arr.clone();
for(int i=0;i<b.length;i++){
System.out.print(b[i]+" ");
}
}
}
输出结果为:
- 数组排序方法Arrays.sort()
public class Main {
public static void main(String[] args) {
//静态初始化
int [] arr = {5,2,13,9,4,6};
//给数组升序排序
Arrays.sort(arr);
for(int i=0 ; i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
输出结果为: