1. 程式人生 > >Arrays.copyOf()&Arrays.copyOfRange()

Arrays.copyOf()&Arrays.copyOfRange()

    在JDK1.5的類System類中有方法

      public static void arraycopy(Object src,
                             int srcPos,
                             Object dest,
                             int destPos,
                             int length)

    標題上的這兩上方法是JDK1.6新增的方法,這兩個方法並沒有用什麼其它更奇妙的技巧,還是用的System.arraycopy(),只是在一定程度上減輕了程式設計師的工作,處理了一些常可能發生的錯誤。

    如:

    public static int[] copyOf(int[] original, int newLength) {
        int[] copy = new int[newLength];
        System.arraycopy(original, 0, copy, 0,
                         Math.min(original.length, newLength));
        return copy;
    }

    public static byte[] copyOfRange(byte[] original, int from, int to) {
        int newLength = to - from;
        if (newLength < 0)
            throw new IllegalArgumentException(from + " > " + to);
        byte[] copy = new byte[newLength];
        System.arraycopy(original, from, copy, 0,
                         Math.min(original.length - from, newLength));
        return copy;
    }