jakyforever

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
import java.util.Arrays;

/*
 *  数组的扩容
 * 1、Arrays.copyOf():数组拷贝+扩容
 * 2、
 * System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 
 * System.arraycopy(源数组, 源起始位置, 目标数组,目标起始位置, 拷贝长度) 
 *       自己拷贝给自己
 * */
public class ArraysLarger {

    public static void main(String[] args) {

        int[] arr = { 1, 2, 3, 4, 5, 6 };
        // 数组扩容前
        System.out.println("数组扩容前:" + Arrays.toString(arr));

        // 数组扩容后
        arr = Arrays.copyOf(arr, arr.length + 5);
        System.out.println("数组扩容后:" + Arrays.toString(arr));

        /*
         * 在 索引 2 的位置 插入 9 1,2,3,4,5,6 0 0 0 0 0 -->1 2 9 3 4 5 6 0 0 0 0 思路:
         * 1、长度是否足够 才能插入,不够 扩容 2、拷贝数组 +移动位置 +覆盖 拷贝数组 +移动位置 1,2,3,4,5,6 0 0 0 0 0 --->1 2 3 3 4 5 6 0 0 0 0
         */

        // 移动位置后
        System.arraycopy(arr, 2, arr, 3, 4);
        System.out.println("移动位置后:" + Arrays.toString(arr));

        // 覆盖
        arr[2] = 9;
        System.out.println("覆盖后:" + Arrays.toString(arr));
    }
}

 

posted on 2013-09-04 17:40  jakyforever  阅读(348)  评论(0编辑  收藏  举报