1.int a[]=newint[3];2.int a[];
a =newint[3];3.int a[]={1,2,3,4};4.int a[]=newint[]{1,2,3}
注意细节:
1.数组创建后,若没有赋值,则有默认值:int、short、byte、long->0float、double->0.0char->\u0000
boolean->falseString->null2.数组属引用类型,数组型数据是对象(object)
数组赋值机制
1.值传递:
传递的是值的拷贝
2.引用传递:
传递的是地址的拷贝
数组拷贝
for循环拷贝
publicclass copy {publicstaticvoidmain(String[] args){int[] a =newint[3];for(int i =0;i < a.length;i++){//为数组a赋值
a[i]= i;}int[] b =newint[3];for(int i =0;i < a.length;i++){//b数组拷贝a数组
b[i]= a[i];}for(int i =0;i < b.length;i++){//输出b数组System.out.print(b[i]+" ");}}}
数组反转
1.找规律进行反转
2.逆序赋值方式
importjavax.rmi.ssl.SslRMIClientSocketFactory;class fanzhuan {publicstaticvoidmain(String[] args){/*
需求:找规律进行反转
实现:(1):需反转(len/2)次
(2):进行交换的两个元素下标相加为len-1
*///代码实现:int[] a =newint[6];int temp =0;int len = a.length;for(int i =0;i < len;i++){//为数组a赋值
a[i]= i;}for(int i =0;i < len;i++){//输出a数组System.out.print(a[i]+" ");}System.out.println();for(int i =0;i<len/2;i++){
temp = a[i];
a[i]= a[len-1-i];
a[len-1-i]= temp;}for(int i =0;i < len;i++){//输出反转后的a数组System.out.print(a[i]+" ");}System.out.println();/*
需求:逆序赋值方式
实现:(1):创建arrNew数组,逆序遍历arr数组拷贝至arrNew数组
(2):将arrNew数组赋值给arr数组
*///代码实现:int[] arr =newint[10];int[] arrNew =newint[10];for(int i =0;i < arr.length;i++){//为arr数组赋值
arr[i]= i;}for(int i =0;i < arr.length;i++){//输出arr数组System.out.print(arr[i]+" ");}System.out.println();for(int i = arr.length-1,j =0;i >=0;i--,j++){//逆序遍历arr数组并为arrNew数组赋值
arrNew[j]= arr[i];}
arr = arrNew;for(int i =0;i < arr.length;i++){//输出arr数组System.out.print(arr[i]+" ");}}}
数组扩容
importjava.util.Scanner;class kuorong {publicstaticvoidmain(String[] args){/*
需求:数组扩容
实现:创建一个length+1的数组,并进行数组拷贝,并为新数组最后一个元素赋值,再将新数组赋值给旧数组
*/int[] arr =newint[3];for(int i =0;i < arr.length;i++){//为arr数组赋值
arr[i]= i;}int num;String t;do{Scanner reader =newScanner(System.in);int[] arrNew =newint[arr.length+1];System.out.print("请输入要扩容的数:");
num = reader.nextInt();
arrNew[arrNew.length-1]= num;for(int i =0;i < arr.length;i++){//拷贝arr数组至arrNew数组
arrNew[i]= arr[i];}
arr = arrNew;for(int i =0;i < arr.length;i++){//输出扩容后的数组System.out.print(arr[i]+" ");}System.out.println();System.out.println("请输入是否继续扩容 y/n");
t = reader.next();if(t.equals("n")){break;}}while(true);}}