qq_26860865
2017-03-08 05:45
采纳率: 33.3%
浏览 17.2k

java 如何删除数组的第一个元素,并且整体向前移动~~~~

java 如何删除数组的第一个元素,并且整体向前移动~~~~~~~~~~~~~~~

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 毕小宝 2017-03-09 02:45

    可以直接看下ArrayList的remove方法的源码。
    图片说明

    点赞 1 打赏 评论
  • 大迅007 2017-03-08 05:49
    点赞 打赏 评论
  • 「已注销」 2017-03-08 05:59
     public class Test {
        public static void main(String[] args) {
            int[] arr = new int[]{1, 2, 3, 4, 5, 6};
            printArr(arr);
            arr = deleteFirst(arr);
            printArr(arr);
        }
    
        static void printArr(int[] arr) {
            for (int i : arr) {
                System.out.print(i + " ");
            }
            System.out.println();
        }
    
        static int[] deleteFirst(int[] arr) {
            int[] temp = new int[arr.length - 1];
            System.arraycopy(arr, 1, temp, 0, temp.length);
            return temp;
        }
    }
    
    点赞 打赏 评论
  • 战在春秋 2017-03-08 06:31

    public static void deleteMemberFromArray(Object[] arr, int index)//index为要删除元素的位置
    {
    if (index < 0 || index >= arr.length)
    {
    throw new IllegalArgumentException(String.format(
    "The index is out of range"));
    }
    else
    {
    for(int i = index+1; i<arr.length; i++)
    {
    arr[i-1] = arr[i];
    }
    }
    }

    点赞 打赏 评论
  • 月光轩辕- 2017-03-08 07:03

    常规定义上的数组 (e.g. int[] )长度是不可变的,如果需要改变的话 需要重新申请一块数组空间。 如果通过可变数组来实现(e.g. arraylist)
    内部也是低效的位移操作。 考虑一下你的业务需求,如果没有要求 就直接申请空间 拷贝一下数据,释放原来的数据,否则的话 改用链表
    会好一些

    点赞 打赏 评论
  • csdnZyp 2017-03-08 07:01

    String[] str = "a,b,c,d,e,f,g,h,j,k".split(",");
    String[] ss = new String[str.length-1];
    System.arraycopy(str, 1, ss, 0, ss.length);
    System.out.println(Arrays.toString(ss));

    点赞 打赏 评论

相关推荐 更多相似问题