自定义数组的创建

    自定义数组是为了克服传统数组的缺点,更好地方便程序员编程,由程序员自己编写的数组。

  一.  在此之前先说说JAVA中数组的缺点如下:

         1.数组中元素类型统一,不能改变。

         2.数组的长度固定,不能改变。

         3.数组不便于插入,删除元素。

二.自定义数组就是要吸取JAVA中数组的优点,克服其缺点。

     1.首先我们来克服第一个缺点-----数组中元素类型统一。

        我们知道基本数据类型在JAVA中都有其包转类。我们要在一个数组中存入各种数据类型的话,我们可以考虑把数组类型定义为它们的超类Object类型;

         private  Object[] src=new Object[3];

  这就定义了一个Object类型长度为3的数组,其可以存入各种类型的元素(如:字符串,对象,整型等等)

     2.我们在来克服第二个缺点------长度固定。

        当一个数组Array1长度固定后,我们要改变其长度的话就要重新定义一个数组Array2,将Array2的长度定长些,再把Array1的元素复制到Array2.然后将Array2赋值给Array1(Array1=Array2),这样Array1就指向Array2数组的起始地址,这样Array1的长度就变长为Array2的长度。

如下定义一个函数可以根据需要动态地改变数组长度:

    public class List {
               private  Object[] src=new Object[0];
    //在末尾增加元素  
             public void add(Object obj){
                    //定义新数组,长度加1
                     Object[] dest = new Object[src.length+1];
                      //拷贝
                     for(int i=0;i<src.length;i++){
                      dest[i] = src[i];
                   }       
                                //交换数组
                   src = dest;
          }

    3.最后我们来解决第三个缺点-----数组的定位插入,删除元素

     跟上例相似,我们只要将指定位置t之前的值赋给dest[i],再在t位置加入要添加的数,再将之后的数一一复制就行。删除就是就指位置的值覆盖就行

如下定位插入例子:

    //在指定位置添加元素
 public void add2(Object object, int t){   //在指定位置添加
          Object[]dest=new Object[src.length+1];
               for(int i=0;i<t;i++)
                { dest[i]=src[i];     
                }
              dest[t]=object;
              for(int i=t+1;i<src.length;i++)
            { dest[i]=src[i];     
              }
                src=dest;
             }

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值