排列:它可以被看作是多个相同类型的数据的组合,这些数据的统一管理。
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(); } } }
结果显示为:
数组属引用类型,同一时候数组能够看成对象,数组中的每一个元素相当于该对对象的变量成员。
作用声明数组的时候在栈内存中分配数组名的存储空间。创建的时候分配的存储空间阵列堆栈内容。
版权声明:在这篇文章中的不可避免的缺点,敬请各位批评,留下评论。
时间: 2024-12-05 22:24:12