集册 Java实例教程 调整数组大小。

调整数组大小。

欢马劈雪     最近更新时间:2020-01-02 10:19:05

408
调整数组大小。
/*
来 自*
 时代Java
*/

// Copyright (c) 2003-present, Jodd Team (jodd.org). All Rights Reserved.

import java.lang.reflect.Array;

import static jodd.util.StringPool.NULL;


public class Main{

    /**

     * Resizes an array.

     */

    public static <T> T[] resize(T[] buffer, int newSize) {

        Class<T> componentType = (Class<T>) buffer.getClass()

                .getComponentType();

        T[] temp = (T[]) Array.newInstance(componentType, newSize);

        System.arraycopy(buffer, 0, temp, 0,

                buffer.length >= newSize ? newSize : buffer.length);

        return temp;

    }

    /**

     * Resizes a <code>String</code> array.

     */

    public static String[] resize(String buffer[], int newSize) {

        String temp[] = new String[newSize];/*N o w J a v a . c o m - 时  代  Java 提供*/

        System.arraycopy(buffer, 0, temp, 0,

                buffer.length >= newSize ? newSize : buffer.length);

        return temp;

    }

    /**

     * Resizes a <code>byte</code> array.

     */

    public static byte[] resize(byte buffer[], int newSize) {

        byte temp[] = new byte[newSize];

        System.arraycopy(buffer, 0, temp, 0,

                buffer.length >= newSize ? newSize : buffer.length);

        return temp;

    }

    /**

     * Resizes a <code>char</code> array.

     */

    public static char[] resize(char buffer[], int newSize) {

        char temp[] = new char[newSize];

        System.arraycopy(buffer, 0, temp, 0,

                buffer.length >= newSize ? newSize : buffer.length);

        return temp;

    }

    /**

     * Resizes a <code>short</code> array.

     */

    public static short[] resize(short buffer[], int newSize) {

        short temp[] = new short[newSize];

        System.arraycopy(buffer, 0, temp, 0,

                buffer.length >= newSize ? newSize : buffer.length);

        return temp;

    }

    /**

     * Resizes a <code>int</code> array.

     */

    public static int[] resize(int buffer[], int newSize) {

        int temp[] = new int[newSize];

        System.arraycopy(buffer, 0, temp, 0,

                buffer.length >= newSize ? newSize : buffer.length);

        return temp;

    }

    /**

     * Resizes a <code>long</code> array.

     */

    public static long[] resize(long buffer[], int newSize) {

        long temp[] = new long[newSize];

        System.arraycopy(buffer, 0, temp, 0,

                buffer.length >= newSize ? newSize : buffer.length);

        return temp;

    }

    /**

     * Resizes a <code>float</code> array.

     */

    public static float[] resize(float buffer[], int newSize) {

        float temp[] = new float[newSize];

        System.arraycopy(buffer, 0, temp, 0,

                buffer.length >= newSize ? newSize : buffer.length);

        return temp;

    }

    /**

     * Resizes a <code>double</code> array.

     */

    public static double[] resize(double buffer[], 
展开阅读全文