1、数组必须先声明再创建(初始化),后使用。
声明:int[ ] array1,array2; int array[ ];//数组没有被分配内存空间
创建(分配内存空间):array1=new int[5];//此时已经有了默认值。可以对数组进行存取了。
2、Java中数组是一种对象,它会有自己的实例变量,实际上,数组只有一个公共的实例变量,也就是length变量,这个变量指的是数组的长度。array1.length
3、byte的默认值是0,char的默认值为空,int为0,long为0,float为0.0 ,double为0.0,String为null
4、array1=array2;//数组拷贝可以直接把一个数组变量拷贝给另一个,这时候,数组都指向同一个数组。即原来array2所指向 的数组。
另一种方法是,System.arraycopy(原数组,想要复制的起始下标,目标数组,要被放置的下标位置,想要拷贝原数组的元素长度)
代码如下:
public class ArrayCopy3 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array1={1,2,3,4,5,6,7,8,9};
int[] array2=new int[20];
for(int i=0;i<10;i++)
array2[i]=10*i;
System.arraycopy(array1,0,array2,10,array1.length);
for(int i=0;i<array2.length;i++)
System.out.println(array2[i]);
}
}
结果为:
5、一维数组初始化:int[] array1=new int[5];array1[0]=1;或者为,int[] array1={1,2,3,4,5};
二维数组创建:int[] [] twoD=new int [5][5];初始化:int[][] twoD={ {1,2,3,4,5},{6,7,8,9,10},{},{},{}};或者,利用循环语句访问数组的每个元素的方法对数组元素进行赋值。
其中,twoD.length代表二维数组的行数;twoD[i].length代表二维数组的列数;
6、二维数组的应用:
package execite;
public class TwoD2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建一个二维数组
int [][] twoD1={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}};
//创建一个一维数组作为中间变量
int [] array1=new int[5];
//把twoD的第一行赋值给array1
array1=twoD1[0];
//交换二维数组的两行
twoD1[0]=twoD1[4];
twoD1[4]=array1;
System.out.println("得到的一维数组array1");
for(int i=0;i<array1.length;i++){
System.out.print(array1[i]+" ");
}
System.out.println();
System.out.println("交换后的二维数组twoD1");
for(int i=0;i<twoD1.length;i++){
for(int j=0;j<twoD1[i].length;j++)
System.out.print(twoD1[i][j]+" ");
System.out.println();
}
}
}
结果如下:
7、int[] [] twoD=new int[5][];//数组的行数在数组声明时必须确定,列数可以在确定。
声明各个行的列数如下:
twoD[0]=new int[1];
twoD[1]=new int[2];
8、for(集合元素的类型 元素变量:集合名称){语句块}
package execite;
public class ForEcho {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
int [] nums={1,2,3,4,5,6,7,8,9,0};
for(int i:nums){
System.out.println("数组元素:"+i);
sum+=i;
}
System.out.println("数组元素和:"+sum);
}
}
结果为:
8、for—each多维数组的使用
int nums[][] =new int [5][5];
for(int x[]: nums)
for(int y:x)
{语句块
对元素进行操作}
实验代码如下:
package execite;
public class ForEach {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
int nums[][]=new int[4][4];
int k=0;
for(int i=0;i<4;i++)
for(int j=0;j<4;j++){
nums[i][j]=k++;
}
//用双重循环来访问二维数组
for(int x[]:nums)
for(int y:x)
{
System.out.println("数组元素:"+y);
sum+=y;
}
System.out.println("数组元素和: "+sum);
}
}
实验结果为: