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);
}
}
StringBuilder用append()方法进行扩容,但是底层代码仍然是数组,利用新建一个更大的数组来扩容。
数组想扩容也是只能新建一个更大的数组来扩容。
public class ListInsert {
public static long[] insert(long[] arr,int i,long l){
//新建数组,对原数组扩容
long[] arr1 = new long[arr.length+1];
//将原数组数据赋值给新数组
for(int j = 0;jarr.length;j++){
arr1[j] = arr[j];
}
//将大于i的数据向后移动一位
for(int j = arr1.length-2;ji;j--){
arr1[j+1] = arr1[j];
}
//赋值到i位置
arr1[i+1] = l;
return arr1;
}
//测试
public static void main(String[] args){
long[] arr = {12,25,11,36,14};
long[] arr1 = insert(arr, 2, 100);
for (long l : arr1) {
System.out.print(l+" ");
}
}
数组的扩容方式:arr = Arrays.copyOf(arr, arr.length+1);
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等
可以像实现ArrayList一样,在该数组不够大时,在创建一个更大的数组,然后将原数组中的元素复制到该数组中!这样就可以就可以动态的改变数组大小。