数组
data_type[] 数组名 or date_type 数组名[];
int a[]; 声明一个整形数组
double b[];声明一个双精度浮点型数组
访问数组需要:
①在内存中给数组分配存储空间
②并指定存储长度
利用new来引用
例:
- a= new int [10];
- double b[]=new double [10];
- 数组名[索引] (数组的索引是从0开始,a[0]…a[n])
定义后有初始值
- 数值类型 为 0
- 布尔值 为 F
- 字符类型 为空字符
- 引用类型 为 null
对数组初始化
- **静态初始化(**注意不要在数组声明中指定数组的大小,将会引发错误)
例:
int [] k={1,2,3,4};
int []k = new int[]{1,2,3,4};
2.动态初始化(将数组的定义和初始化分开进行)
例:
int [] array = new int [2];
array[0]=1;
array[1]=2;
public class FindMax{
public static void main(String[] args){
int []arraay ={10,23,6,88,19};
int index =0;//最大索引号,默认为0
int max = array[index];//最大值
//寻找最大值
for (int i=0;i<array.length;i++){ //遍历整个数组
if(array[i]>max){
index =i;
max = array[i];
}
}
System.out.println("最大值为"+max+",索引号为"+index);
}
}
最大值为88,索引号为3;
数组复制
- 循环语句进行复制
pubilc class ArrayCopyFor{
public static void main(String[] args){
int[] array1 ={1,2,3,4,5};
int []array2 =new int [array.length];
//复制
for(int i=0;i<array1.length;i++)
{array2[i] =array1[i];}
//输出array2的结果
for(int i=0;i<array2.length;i++)
{System.out.print(array2[i]+",");}
}
}
}
- clone方法
public class ArrayCopyFor{
public static void main(String[] args){
int [] array1 ={1,2,3,4,5};
//复制
int [] array2 = array1.clone();
//输出array2 结果
for (int i=0;i<array2.length;i++)
{System.out.print(array2[i]+" ");}
}
}
- System.arraycopy(from,fromIndex,to,toIndex,count)
public class ArrayCopy{
public static void main(String[] args){
int[] array1 ={1,2,3,4,5};
int[] array2 = new int [array1.length];
int [][] a = new int [3][3];
//复制
System.arraycopy(array1,0,array2,0,array1.length);
//输出array2的结果
for(int i=0;i<array.length;i++)
{System,out.print(array2[i]+",");}
}
}
}
二维数组
data_type[ ][ ] 数组名
创建二维数组 int [ ][ ] array =new int [10][ ];
使用二维数组之前 先进行初始化
如果知道数组元素,直接初始化数组。(如一维数组的静态初始化)
例:int [ ][ ] array = {{1,2},{3,4},{5,6}};
public class Array1DDemo{
public static void main(String[] args){
//定义二维数组
int [][] array = new int [2][2];
for (int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
array[i][j]=j+2*i+1;//把1,2,3,4分别赋给array[i][j]
}
}
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
System.out.println("array["+i+"]["+j+"]="+array[i][j]);
}
}
}
}
总结
1.数组是用来存储一组相同类型数据的有序集合
2.数组元素通过下标访问,第一个元素的下标从0开始
3.数组是静态结构,无法动态增长
4.数组属于对象范畴,可以使用.length属性获得数组的元素个数
5.数组元素具有初始化默认值,数值类型的初始值为0,引用类型的初始值为null
6.数组的拷贝可以使用for循环,。clone()方法,System.arraycopy()方法。
7.数组必须先分配空间才能使用
8.数组可以存储基本类型数据,也可以存储对象类型数据。