重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
StringBuilder用append()方法进行扩容,但是底层代码仍然是数组,利用新建一个更大的数组来扩容。
创新互联是一家集网站建设,宝塔企业网站建设,宝塔品牌网站建设,网站定制,宝塔网站建设报价,网络营销,网络优化,宝塔网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
数组想扩容也是只能新建一个更大的数组来扩容。
public class DoubleSize {
//方法内部不能改变参数的值,但是可以改变参数指向的值
//这样写没有改变a,但是可以改变a[0]
/**
*
* @param a
* @param index
*/
public static void ds(String[][] a,int index){
String[] NewA = new String[a[index].length*2];
for(int i=0;ia[index].length;i++){
NewA[i]=a[index][i];
}
a[index]=NewA;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String[][]a=new String[2][];
String[] a1={"abc","bbb","ccc"};
a[0]=a1;
DoubleSize.ds(a,0);
for(int i=0;ia[0].length;i++){
System.out.println(a[0][i]);
}
System.out.print(a[0].length);
}
}
可以像实现ArrayList一样,在该数组不够大时,在创建一个更大的数组,然后将原数组中的元素复制到该数组中!这样就可以就可以动态的改变数组大小。
数组扩容可以通过新建一个数组长度设大点,然后通过 System.arraycopy(a1,0,a2,0,a.length)这种方式扩容,其他方式貌似没有。。。