一、数组的复制
1、直接复制数组
缺点:修改源数组,新数组也受到了影响
public static void main(String[] args){//原数组String[] names = {"麻生希","椎名空","水菜丽"};//新数组String[] newNames = names;//修改原数组的数据names[1] = "小明";//遍历新数组for(String element:newNames){System.out.println(element);//结果和原素组一样为 麻生希 小明 水菜丽"}}
2、复制原数组内容
public static void main(String[] args){//原数组String[] names = {"麻生希","椎名空","水菜丽"};//新数组String[] newNames = new String[names.length];//遍历源数组,将源数组里的数据赋值给新数组for(int i = 0;i<names.length;i++){newNames[i] = names[i];}//修改源数组的数据names[1] = "曾子俊";//遍历新数组for(String element:newNames){System.out.println(element);//新数组结果仍为 麻生希 椎名空 水菜丽} }
二、数组的扩容
//实现方式:通过创建长度更长的新数组,将原数组数据给到新数组再将新数组的引用赋值给原数组 public static void main(String[] args){//原数组String[] names={"小明","小红","小绿"};//计算新的长度(原来长度的1.5倍)int oldLength=names.length;int newLength=oldLength+(oldLength>>1);//创建新数组-默认值为null所以数组为[null,null,null,null];String[] newNames=new String[newLength];//遍历数组,将原数组里的数据赋值给新数组for(int i=0;i<names.length;i++){newNames[i]=names[i];}//将新数组的引用赋值给原数组names=newNames;//遍历原数组for(int i=0;i<names.length;i++){System.out.println(names[i]);//结果为 小明,小红,小绿,null}}