假如我申请a[5],最后一个即a[4]没有值, 我想把它删掉,让它的length减1,该怎么实现啊,有没有专门的函数啊

解决方案 »

  1.   

    Java中数组的大小一旦确定是无法改变的。
    所以建议你新建一个数组,把前4个copy进去
      

  2.   

    数组一旦初始化 长度是没办法改变的
    建议你用ArrayList
    如果你非要用数组
    可以这样做
    new b[]
    b[0]=a[0]
    ...
    b[3]=a[3]a=b
      

  3.   

    如果坚持用数组,就如楼上所说,拷贝时最好使用System.arrayCopy(),好像是这个函数。建议使用Vector,Vector相当于一个长度可变的数组。
      

  4.   

    如果楼主仅仅是用于这一特殊用途的话,建议用System.arrayCopy(),用ArrayList或Vector有点大材小用了,而且不能存primitive:public static int[] deleteLast(int[] a) {
    int[] b = new int[a.length - 1];
    System.arraycopy(a, 0, b, 0, b.length);
    return b;
    }
    public static void main(String[] args) {
    int[] a = {1, 2, 3, 4, 5};
    int[] b = deleteLast(a); // b是从a中删除了最后一个元素
    }
      

  5.   

    System.arrayCopy()把数组的内容拷贝到新数组了。