数组在java中的扩容的实例方法

网友投稿 233 2022-11-05


数组在java中的扩容的实例方法

在使用数组的时候,因为大小的限制,难免会出现不够用的现象。直接给数据对象扩容是不可行的,这时候就需要我们找寻一些其他的方法。本篇先为大家简单分析扩容的原理,然后创建一个数组供大家使用,最后提供两种数组扩容方法:for循环和Arrays,下面一起来看具体的操作。

1.扩容的原理

(1)java数组对象的大小是固定不变的,数组对象是不可扩容的。

(2)利用数组复制方法可以变通的实现数组扩容。

(3)System.arraycopy()可以复制数组。

(4)Arrays.copyOf()可以简便的创建数组副本。

(5)创建数组副本的同时将数组长度增加就变通的实现了数组的扩容。

2.先创建数组

import java.util.Arrays;

//数组的扩容示例

public class Test {

public static void main(String [] args){

//创建一个原始数组,并做好初始化。

// int [] arry = {1,3,5,7,9};

int arry[] =new int[]{1,3,5,7,9};

int arry1[]=new int[7];//新建一个新数组这里的7=arry.length+需要扩容的长度

System.out.println("打印原始数组的长度为:"+arry.length);

System.out.println("打印新数组的长度为:"+arry1.length);

//验证该数组有没有创建完成,可以获取一下数组元素看看能不能成功。

// System.out.println(arry[1]);

//把从旧数组中获取的数据一个一个的存到新的数组里面去,并新增两个数:11,13。

//如何把数据存到数组里面去,使用arry1[0]=1;

/*

3.方法一:循环遍历原始数组arry,长度是固定的,所以用for循环。

//1、先完成复制数组

for(int i=0;i

arry1[i] = arry[i];

}

//2、再完成赋值插入操作,即已完成数组的扩容操作。

arry1[5]=11;

arry1[6]=13;

System.out.println("新数组为:"+arry1[5]);

SysZyErDtem.out.println("新数组为:"+arry1[6]);

*/

/*

4.方法二:使用java的util包的Arrays类的copyOf(原数组名,新数组长度)方法来进行复制。

arry1 = Arrays.copyOf(arry,arry.length+2);

arry1[5] = 11;

arry1[6] = 13;

System.out.println("新数组为:"+arry1[5]);

System.out.println("新数组为:"+arry1[6]);

以上就是数组在java中的扩容方法,这两种方法相对新手而言,是非常容易实现扩容的。

相关实例扩展:

import java.util.Arrays;

public class HelloWorld {

public static void main(String[] args){

// Scanner s = new Scanner(System.in);

// System.out.println("请输入一个数字");

// int num = s.nextInt();

int []a = {1,2,3,4,5};

int []b = new int[a.length] ;

//1、源数组

//2、源数组的哪个位置开始

//3、目标数组

//4、目标数组的哪个位置开始存放

//5、拷贝几个

//System.arraycopy(a, 0, b, 0, a.length);

//Demoe.PrintArray(b);

//扩容--->扩容了一倍

//a = Arrays.copyOf(a, 2*a.length) ;

//Demoe.PrintArray(a);

a = insertArray(a , 3 , 100) ;

//打印数组

System.out.println(Arrays.toString(a));

}

//写一个函数,向整数数组的任意pos位置插入一个元素value

public static int[] insertArray(int []a , int pos , int value){

if(pos < 0 || pos > a.length + 1) //索引下标不对,直接返回源数组

return a ;

//放入一个元素,先扩容,后复制

a = Arrays.copyOf(a, a.length+1) ;

for(int i = a.length - 1 ; i > pos ; i--){

a[i] = a[i-1] ; //后移动

}

a[pos] = value ;

return a ;

}

}

arry1[i] = arry[i];

}

//2、再完成赋值插入操作,即已完成数组的扩容操作。

arry1[5]=11;

arry1[6]=13;

System.out.println("新数组为:"+arry1[5]);

SysZyErDtem.out.println("新数组为:"+arry1[6]);

*/

/*

4.方法二:使用java的util包的Arrays类的copyOf(原数组名,新数组长度)方法来进行复制。

arry1 = Arrays.copyOf(arry,arry.length+2);

arry1[5] = 11;

arry1[6] = 13;

System.out.println("新数组为:"+arry1[5]);

System.out.println("新数组为:"+arry1[6]);

以上就是数组在java中的扩容方法,这两种方法相对新手而言,是非常容易实现扩容的。

相关实例扩展:

import java.util.Arrays;

public class HelloWorld {

public static void main(String[] args){

// Scanner s = new Scanner(System.in);

// System.out.println("请输入一个数字");

// int num = s.nextInt();

int []a = {1,2,3,4,5};

int []b = new int[a.length] ;

//1、源数组

//2、源数组的哪个位置开始

//3、目标数组

//4、目标数组的哪个位置开始存放

//5、拷贝几个

//System.arraycopy(a, 0, b, 0, a.length);

//Demoe.PrintArray(b);

//扩容--->扩容了一倍

//a = Arrays.copyOf(a, 2*a.length) ;

//Demoe.PrintArray(a);

a = insertArray(a , 3 , 100) ;

//打印数组

System.out.println(Arrays.toString(a));

}

//写一个函数,向整数数组的任意pos位置插入一个元素value

public static int[] insertArray(int []a , int pos , int value){

if(pos < 0 || pos > a.length + 1) //索引下标不对,直接返回源数组

return a ;

//放入一个元素,先扩容,后复制

a = Arrays.copyOf(a, a.length+1) ;

for(int i = a.length - 1 ; i > pos ; i--){

a[i] = a[i-1] ; //后移动

}

a[pos] = value ;

return a ;

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:身份证号一键查询核酸检测结果API(身份证号一键查询核酸检测结果河南省商丘市夏邑)
下一篇:入团时间查询API(入团时间查询密码)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~