排列:它可以被看作是多个相同类型的数据的组合,这些数据的统一管理。
1.声明、 创建
一维:type[] var 比如:int[] a或 int a[];
数组名= new 数组元素的类型[数组元素的个数]
public class TestNew
{
public static void main(String args[]) {
int[] s ; //声明 或者int s[] 可是不可int s[5]
s = new int[5] ; //创建 new
for(i = 0 ; i < 5 ; i++) {
s[i] = i ;
}
}
}
2初始化
静态初始化:在定义数组的同一时候就为数组元素分配空间并赋值。
动态初始化:数组定义和数组元素分配空间和赋值分开操作。
默认初始化:数组是引用类型,元素相当于成员变量。因此数组在分配空间后,系统默认给每一个元素进行了隐式初始化。
public class Test
{
public static void main(String args[]) {
//动态初始化
int a[] ;
a = new int[22] ;
a[0] = 0 ;
a[1] = 1 ;
Date days[] ;
days = new Date[2] ;
days[0] = new Date(2015,6,1) ;
days[1] = new Date(2012,5,5) ; //静态初始化
int a[] = {0,1} ;
Date days[]= {new Date(2015,6,1),new Date(2012,5,5} //默认初始化
int a[] = new int [2] ;
Date days[] = new Date[2]
//输出结果。基本类型默觉得0应用类型默觉得null
System.out.println(a[1]+" "+Date[1]) ;
}
} class Date
{
int year,month,day ;
Date(int year ,int month ,int day) {
this.year = year ;
this.month = month ;
this.day = day ;
}
}
3.数组拷贝
java的lang包中封装了arraycopy方法能够实现数组的拷贝
public static void arraycopy(Object s,int sbeginPos,Object scopy,int scopybeginPos,int slength )
s:源数组
、 sbeginPos:源数组開始位置
scopy:目标数组 、 scopybeginPos:目标数组開始放置位置
slength:要拷贝源数组的长度
样例例如以下:
public class Array{ //拷贝数组,
public static void main(String[] args){
//1.元素为基本类型的,目标数组和源数组的元素独立,不相互影响
String[] s ={"IBM","Oracle","Apple"};
String[] sBak = new String[6]; //1.1从源数组s s[1]開始拷贝元素到目标数组sBak中从sBak[2]開始存放的拷贝进来的元素,拷贝的个数为s.length-1个
System.arraycopy(s,1,sBak,2,s.length-1); for(int i=0;i<sBak.length;i++){
System.out.print(sBak[i]+" ");
}
//1.2改动目标数组一个元素值
sBak[2]="tihuan";
//1.2.1目标数组值改变
System.out.print("\n");
for(int i=0;i<sBak.length;i++){
System.out.print(sBak[i]+" ");
}
//1.2.2源数组值不变
System.out.print("\n");
for(int i=0;i<s.length;i++){
System.out.print(s[i]+" ");
} //2.元素为引用类型的,拷贝的是数组的引用,对随意数组元素的改动都会影响其它数组。
System.out.println();
int[][] intArray ={{1,2},{1,2,3},{3,4}};
int[][] intArrayBak = new int[3][]; System.arraycopy(intArray,0,intArrayBak,0,intArray.length);
//2.1改动目标数组的一个元素值
intArrayBak[2][1] = 100;
//2.2打印源数组看值是否发生变化
for(int i=0;i<intArray.length;i++){
for(int j=0;j<intArray[i].length;j++){
System.out.print(intArray[i][j]+" ");
} System.out.println();
}
}
}
结果显示为:
数组属引用类型,同一时候数组能够看成对象,数组中的每一个元素相当于该对对象的变量成员。
作用声明数组的时候在栈内存中分配数组名的存储空间。创建的时候分配的存储空间阵列堆栈内容。
版权声明:在这篇文章中的不可避免的缺点,敬请各位批评,留下评论。