JAVA数组的扩容,三种不同的方法,欢迎批评指正

赤 色 黎 明 2019-07-04 04:15:38
/**

Java数组扩容,三种方法,有什么不妥的地方,欢迎批评指正

*/
import java.util.Arrays;//在这里需要调用的函数
class Demo{
public static void main(String[] args){
int[] a={1,2,3,4,5,6,7,9};

//第一种方法,建立一个新的数组,通过for循环来进行拷贝扩容
int[] b=new int[a.length*2];//a.length:长度,a数组的长度,即数组中数据的个数
for(int i=0;i<a.length;i++){
b[i]=a[i];
}
System.out.println(Arrays.toString(b));//这个函数就是将数组b进行遍历并输出
//如果不明白遍历什么意思,建议先学习遍历后再来看此篇文章



//第二种方法,固定的写法,System.Arrays.copy(a,0,b,0,a.length);

int[] c=new int[20];
System.arraycopy(a,0,c,0,a.length);
//a,需要需要复制的内容,第一个0(零):在a中开始复制的内容位置
//c,要复制的载体,这里写c就是将a中需要复制的内容赋值给c
//第二个0(零):在c中开始复制的位置
//a.length:要复制的元素量
System.out.println(Arrays.toString(c));


//方法三。利用方法函数直接
//原理,利用Arrays中的函数进行扩容
int[] d=Arrays.copyOf(a,22);//此函数的作用就是复制a的值,定义d的长度
// Arrays.copyOf(a,22);a,需要复制的内容(a数组),22:数组长度
System.out.println(Arrays.toString(d));


}
}
...全文
475 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Li_Nn 2019-07-05
  • 打赏
  • 举报
回复
嗯嗯,方法三的底层核心就是方法二中的System.Arrays.copy
wduo0 2019-07-04
  • 打赏
  • 举报
回复
不错,有用,感觉第二种更容易理解一些
「已注销」 2019-07-04
  • 打赏
  • 举报
回复

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧