A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wanmei0398 中级黑马   /  2014-10-26 09:47  /  1594 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大神们!小弟最近学到数组这,有个问题,怎么样在原数组中插入一个数。

3 个回复

倒序浏览
数组一个固定长度 的数据结构,一旦声明,你不能改变数组的长度。插入数据就意味着长度改变了,不能直接在原数组上操作,应该新建一个临时数组,
  1. public class Demo6 {

  2.         public static void main(String[] args) {
  3.                 String[] arr = { "a", "b", "c", "d", "e" };
  4.                 String var = "insert";
  5.                 String[] temp = new String[arr.length + 1];
  6.                 int pos = 2;
  7.                 for (int i = 0; i < pos; i++)
  8.                         temp[i] = arr[i];
  9.                
  10.                 temp[pos]=var;
  11.                
  12.                 for(int i = pos;i<arr.length;i++)
  13.                         temp[i+1] = arr[i];

  14.                 for(String str:temp)
  15.                         System.out.print(str+" ");
  16.         }

  17. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
只能新建一个长得了
回复 使用道具 举报
本帖最后由 张周飞 于 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++;
}

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马