一、数组的一些概念
1、定义
数组(Array)是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
2、数组的分类
一般有一维数组、二维数组......
2.1.1. 一维数组:可以理解为一列多行、类型相同的数据,其中每个数据被称为数组元素。
2.1.2. 一维数组的声明方式:"数据类型 数组名 [ ] "或“数据类型 [ ] 数组名”。
例如:
int age[ ]; int [ ] age;
说明:数组的长度一旦确定,就不能改变,也就是说数组是定长的。
java 语言声明数组的时候不能指定其长度(元素的个数),例如:int a[ 5 ]是非法的。
2.2.1. 初始化数组对象:java中的数组必先初始化才可以使用。所谓初始化就是为数组的数组元素分配内存,并为每个数组元素赋值。
数组初始化的两种方式:
①静态初始化,初始化时指定每个元素的初始值,由系统决定需要的数组长度。
格式:
数据类型 数组名 =new 数组类型 [ ] {元素1,元素2,元素3,元素4......,元素n };
简化语法:
数据类型 数组名= {元素1,元素2,元素3,......,元素n };
②动态初始化,初始化时指定每个数组元素的初始值,由系统决定需要的数组长度。
数据类型 数组名= new 数据类型[ 数组长度 ];
注意:静态初始化和动态初始化不能同时使用,也就是说不能同时指定数组的长度和元素。
例如:
//动态初始化
//声明数组及初始化
public class Example 01{
public static void main(String [] args){
int []age =new int[10];
//动态初始化
for (int i=0;i<age.length;i++){
age[i]=i;
System.out.println(age[i]+" ");
}
}
}
或者//静态初始化
public class{
public static void main(String [] args){
int []age =new int[]{0,1,2,3,4,5,6,7,8,9};
//动态初始化
for (int i=0;i<age.length;i++){
age[i]=i;
System.out.println(age[i]+" ");
}
}
}
输出结果为
2.2.1.二维数组:二维数组可以简单理解为在数组中又存储了数组。
①两种初始化形式:
动态初始化,格式如下:
数据类型 数组名[ ][ ]=new 数据类型[ m ][ n ];
数据类型[ ] [ ] 数组名= new 数据类型[ m ] [ n ];
数据类型[ ] 数组名[ ]=new 数据类型[ m ][ n ];
例如:
int [ ][ ] arr=new int[ 5 ][ 3 ];
静态初始化,格式如下:
数据类型[ ][ ] 数组名={{元素1,元素2,...},{元素1,元素2,...},{元素1,元素2,...},...};
例如:int[][] arr ={{22,15,32,20,18},{12,21,25,19,33},{14,58,34,24,66},};
②二维数组的初始化的使用
静态初始化的使用,例如:
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[0].length);//输出列数
}
动态初始化的使用,例如:
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();
}
}