黑马程序员技术交流社区
标题:
请问一个数组怎么扩容
[打印本页]
作者:
wanmei0398
时间:
2014-10-26 09:47
标题:
请问一个数组怎么扩容
大神们!小弟最近学到数组这,有个问题,怎么样在原数组中插入一个数。
作者:
void
时间:
2014-10-26 10:34
数组一个固定长度 的数据结构,一旦声明,你不能改变数组的长度。插入数据就意味着长度改变了,不能直接在原数组上操作,应该新建一个临时数组,
public class Demo6 {
public static void main(String[] args) {
String[] arr = { "a", "b", "c", "d", "e" };
String var = "insert";
String[] temp = new String[arr.length + 1];
int pos = 2;
for (int i = 0; i < pos; i++)
temp[i] = arr[i];
temp[pos]=var;
for(int i = pos;i<arr.length;i++)
temp[i+1] = arr[i];
for(String str:temp)
System.out.print(str+" ");
}
}
复制代码
作者:
郑飞
时间:
2014-10-26 10:39
只能新建一个长得了
作者:
张周飞
时间:
2014-10-26 10:48
本帖最后由 张周飞 于 2014-10-26 11:04 编辑
可以动态数组扩展 int 新数组长度:原数组*3/2+1---表示原数组的一倍
然后 原数组=Arrays .copyOf(原数组, 新数组长度);
这就是我的思路。
举个例子:
Underwear[]
Underwears
=new Underwear[3];
//原数组及长度
int count;
//计数器
public void add( Underwear U){
if(count>=
Underwears
. length){
//可以动态数组扩展
int
Newlen
=(
Underwears
. length*3)/2+1;
//新数组=
原数组*3/2+1---表示原数组的一倍
//
原数组赋给新数组--然后--新数组赋给原数组 成了新的数组,
Underwears =Arrays .copyOf(
Underwears
,
Newlen
);
}
Underwears
[count]=U;
count++;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2