翻轉(逆序重排列)數組元素(Java)

翻轉(逆序重排列)數組元素(Java)

public class CArrays {
    private CArrays() {}

    /**
     * Reverse the object array.
     *
     * @param arr object array
     * @param <T> object type
     * @return the reversed object array
     */
    public static <T> T[] reverse(T[] arr) {
        validateNotNull(arr);
        int len = arr.length;
        T temp;
        for (int i = 0; i < len / 2; i++) {
            temp = arr[i];
            arr[i] = arr[len - i - 1];
            arr[len - i - 1] = temp;
        }
        return arr;
    }

    /**
     * Reverse the int array.
     *
     * @param arr int array
     * @return the reversed int array
     */
    public static boolean[] reverse(boolean[] arr) {
        validateNotNull(arr);
        int len = arr.length;
        boolean temp;
        for (int i = 0; i < len / 2; i++) {
            temp = arr[i];
            arr[i] = arr[len - i - 1];
            arr[len - i - 1] = temp;
        }
        return arr;
    }

    /**
     * Reverse the byte array.
     *
     * @param arr byte array
     * @return the reversed byte array
     */
    public static byte[] reverse(byte[] arr) {
        validateNotNull(arr);
        int len = arr.length;
        byte temp;
        for (int i = 0; i < len / 2; i++) {
            temp = arr[i];
            arr[i] = arr[len - i - 1];
            arr[len - i - 1] = temp;
        }
        return arr;
    }

    /**
     * Reverse the short array.
     *
     * @param arr short array
     * @return the reversed short array
     */
    public static short[] reverse(short[] arr) {
        validateNotNull(arr);
        int len = arr.length;
        short temp;
        for (int i = 0; i < len / 2; i++) {
            temp = arr[i];
            arr[i] = arr[len - i - 1];
            arr[len - i - 1] = temp;
        }
        return arr;
    }

    /**
     * Reverse the int array.
     *
     * @param arr int array
     * @return the reversed int array
     */
    public static int[] reverse(int[] arr) {
        validateNotNull(arr);
        int len = arr.length;
        int temp;
        for (int i = 0; i < len / 2; i++) {
            temp = arr[i];
            arr[i] = arr[len - i - 1];
            arr[len - i - 1] = temp;
        }
        return arr;
    }

    /**
     * Reverse the long array.
     *
     * @param arr long array
     * @return the reversed long array
     */
    public static long[] reverse(long[] arr) {
        validateNotNull(arr);
        int len = arr.length;
        long temp;
        for (int i = 0; i < len / 2; i++) {
            temp = arr[i];
            arr[i] = arr[len - i - 1];
            arr[len - i - 1] = temp;
        }
        return arr;
    }

    /**
     * Reverse the double array.
     *
     * @param arr double array
     * @return the reversed double array
     */
    public static double[] reverse(double[] arr) {
        validateNotNull(arr);
        int len = arr.length;
        double temp;
        for (int i = 0; i < len / 2; i++) {
            temp = arr[i];
            arr[i] = arr[len - i - 1];
            arr[len - i - 1] = temp;
        }
        return arr;
    }

    /**
     * Reverse the char array.
     *
     * @param arr char array
     * @return the reversed char array
     */
    public static char[] reverse(char[] arr) {
        validateNotNull(arr);
        int len = arr.length;
        char temp;
        for (int i = 0; i < len / 2; i++) {
            temp = arr[i];
            arr[i] = arr[len - i - 1];
            arr[len - i - 1] = temp;
        }
        return arr;
    }

    // throw an IllegalArgumentException if obj is null
    // (obj is any type of array)
    private static void validateNotNull(Object obj) {
        if (obj == null)
            throw new IllegalArgumentException("array is null");
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章