对一个数组a[n],现在要把其中一个元素a[r]除去(r<n),为什么只要写
      a[r]=a[n-1];
      n--;
     就可以了。数组中原来的a[r+1]到a[n-1]这些元素不需要都向前移一个吗?
     是不是a[r]=a[n-1]就是的意思就是a[r]和a[n-1]交换位置啊?

解决方案 »

  1.   

    这样的做法,a[n-1]还在,以后不能用a.length求数组的长度了。
      

  2.   

    a[r]=a[n-1]的意思就是a[r]和a[n-1]都指向原来a[n-1]指向得区域
      

  3.   

    只是把a[r]和a[n-1]的位置互换,然后把最后一位的a[r]删除
      

  4.   

    如果数组无序,这样当然可以了。但原来的a[n-1]还占据着内存空间,只用改变了的n访问不到它了。
      

  5.   

    欢迎做客 java coffee 技术交流会所 QQ群:27464311
      希望个高手 和学习java的新朋友的光临