1..java数组的定义
1..java数组的定义有两种形式:1,动态方式(指定数组长度);2,静态方式(指定数组的元素);
- 动态方式:数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];
- 静态方式:数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[]{元素1,元素2,...};
2..数组的初始化:1,静态初始化; 2,动态初始化;
- 静态初始化:初始化指定每个元素的初始值,由系统决定需要的数组长度。
int[] arr = new int[]{1,2,3,4,5};
- 动态初始化:初始化是指定数组的长度,由系统为每个数组元素赋值。
int[] arr = new int[3];
int arr[] = new int[3];
二维数组的定义可以理解成一个一维数组的各个元素中又储存了一个一维数组;
数据类型 数组名 [][] = new 数据类型[多少个一维数组][每个一维数组中有几个元素];
二维数组格式:数据类型 数组名[][] = new 数据类型[m][n];
二维数组的初始化与一维数组初始化类似;一样有着动态初始化和静态初始化两种;
- 静态初始化
public class Example{
public static void main(String[] args){
int [][] arr = new int[][]{{4,5,6,8},{2,3},{1,6,9}};
System.out.println(arr.length);
System.out.println(arr[i].length);//i=0,1,2
}}
- 动态初始化
public class Example{
public static void main(String[] args){
int arr[][] = new int[][]{{4,5,6},{2,3,9}};
int arrtrans[][] = new int[arr[0].length][arr.length];
for (int i=0;i<arr.length;i++){
for(int j=0;j<arr[0].length;j++){
arrtrans[j][i]=arr[i][j];
}}
for (int i=0;i<arrtrans.length;i++){
for( int j=0;j<arrtrans[0].length;j++){
{System.out.print(arrtrans[i][j]);}
System.out.println();
}}
}
}
2..数组操作与数组封装类Arrays
1..System.arraycopy:数组元素拷贝:
public static native void arraycopy(Object src, int srcPos,Object dest,int destPos,int length);作用是从 src数组 的 srcPos 位置往dest数组的 destPos 位置上拷贝 length 个元素;
-
int[] src = {1, 2, 3, 4, 5}; int[] dest = new int[5]; System.arraycopy(src, 0, dest, 0, src.length);
当数组类型不匹配时,会出现ArrayStoreException异常;
当数组拷贝位置或元素数量不当时,可能出现ArrayIndexOutOfBoundException异常;
Arrays.fill:数组填充内容
public static void fill(Object[] a,Object val);
int[] arr = new int[5];
Arrays.fill(arr, 5);
System.out.println(Arrays.toString(arr));
// 输出 [5, 5, 5, 5, 5]
int[] arr2 = new int[10];Arrays.fill(arr2, 2, 7, 8);
System.out.println(Arrays.toString(arr2));
// 输出 [0, 0, 8, 8, 8, 8, 2, 2, 2, 2]
在第一个示例中,我们将一个长度为5的整型数组填充为值5。在第二个示例中,我们将一个长度为10的整型数组中从索引2到索引7(不包括)的元素填充为值8。
Arrays.sort:数组排序,
public static void sort (T[] a);
这种形式是对一个数组的所有元素进行排序,并且是按从小到大的顺序。
int[] arr = {3, 1, 4, 1, 5, 9, 2, 6, 5};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
//输出[1, 1, 2, 3, 4, 5, 5, 6, 9];