当前位置:首页 » 编程语言 » java变长数组

java变长数组

发布时间: 2023-08-09 18:49:16

‘壹’ java中如何动态改变数组长度 动态数组 array

java中的数组一旦被定义长度是不允许修改长度的,如果题主希望实现类似的功能可以采用ArrayList。ArrayList的底层结构就是数组。当ArrayList实例化时会默认设置一个长度,当长度不够用时会自动扩展现有长度的1/2.(假设初始数组长度为10,现在变成了15)


System.array(Object src,int srcPos,Object dest,int destPos,int length )能够实现数组复制的功能。

假设有数组a(src),数组b(dest),我们希望把a数组中从下标为2(srcPos)长度为3(length)的元素复制到b的下标为4(destPos)开始的元素中。java代码示例如下:

inta=[1,3,5,7,9];
intb=[2,4,6,8,0,2,4];
System.array(a,2,b,4,3);

//最终b的内容为[2,4,6,8,5,7,9];

但是如果注意API的话会发现array有几个限制

1、a,b的元素类型必须相同(int和Integer这里也是需要区分的)

2、数组不能越界,也就是srcPos+length不能超过a的长度;desPos+length也不能超过b的长度,否则就会报数组越界的一场。这也说明了无法实现数组长度的动态扩展。

‘贰’ java中数组的长度可以改变吗

java中数组的长度不可以改变。

java中的数组的定义就是相同类型,固定长度的一组数据,一旦被初始化,长度不可更改。如果对需要用的数组的长度不确定,有两种解决办法:

第一种是在数组初始化的时候长度申请的足够大,这样做会造成内存空间的浪费,一般不推荐使用。
第二种是用java中提供的集合的方式存储数据,如List,Set和Map类型的对象存储数据,一方面这些类型的对象的长度都是动态增长的,另一方面这些类中提供了很多便于操作数据的方法,因此在对所需存储数据的多少不确定的时候,第二种方法比第一种方法更优秀。

热点内容
手机代理服务器怎么设置限制 发布:2025-03-20 07:51:03 浏览:424
keil的c51编译器 发布:2025-03-20 07:40:46 浏览:332
vpn韩国服务器地址 发布:2025-03-20 07:12:44 浏览:26
打码软件源码 发布:2025-03-20 07:08:06 浏览:109
前端android 发布:2025-03-20 06:50:42 浏览:93
进制转换栈c语言 发布:2025-03-20 06:50:31 浏览:340
myeclipse不自动编译了 发布:2025-03-20 06:41:38 浏览:778
led汽车大灯和卤素灯该选哪个配置 发布:2025-03-20 06:40:55 浏览:917
sql网校 发布:2025-03-20 06:16:42 浏览:279
安卓手机图标排列为什么会混乱 发布:2025-03-20 06:16:05 浏览:761