• java 哈希码


    加入新的元素到数组中

        /**
         * Append the given object to the given array, returning a new array
         * consisting of the input array contents plus the given object.
         * @param array the array to append to (can be {@code null})
         * @param obj the object to append
         * @return the new array (of the same component type; never {@code null})
         */
        public static <A, O extends A> A[] addObjectToArray(A[] array, O obj) {
            Class<?> compType = Object.class;
            if (array != null) {
                compType = array.getClass().getComponentType();
            }
            else if (obj != null) {
                compType = obj.getClass();
            }
            int newArrLength = (array != null ? array.length + 1 : 1);
            @SuppressWarnings("unchecked")
            A[] newArr = (A[]) Array.newInstance(compType, newArrLength);
            if (array != null) {
                System.arraycopy(array, 0, newArr, 0, array.length);
            }
            newArr[newArr.length - 1] = obj;
            return newArr;
        }

    把数组转换成Object数组

        /**
         * Convert the given array (which may be a primitive array) to an
         * object array (if necessary of primitive wrapper objects).
         * <p>A {@code null} source value will be converted to an
         * empty Object array.
         * @param source the (potentially primitive) array
         * @return the corresponding object array (never {@code null})
         * @throws IllegalArgumentException if the parameter is not an array
         */
        public static Object[] toObjectArray(Object source) {
            if (source instanceof Object[]) {
                return (Object[]) source;
            }
            if (source == null) {
                return new Object[0];
            }
            if (!source.getClass().isArray()) {
                throw new IllegalArgumentException("Source is not an array: " + source);
            }
            int length = Array.getLength(source);
            if (length == 0) {
                return new Object[0];
            }
            Class<?> wrapperType = Array.get(source, 0).getClass();
            Object[] newArray = (Object[]) Array.newInstance(wrapperType, length);
            for (int i = 0; i < length; i++) {
                newArray[i] = Array.get(source, i);
            }
            return newArray;
        }

    返回哈希码

        /**
         * Return as hash code for the given object; typically the value of
         * {@code Object#hashCode()}}. If the object is an array,
         * this method will delegate to any of the {@code nullSafeHashCode}
         * methods for arrays in this class. If the object is {@code null},
         * this method returns 0.
         * @see #nullSafeHashCode(Object[])
         * @see #nullSafeHashCode(boolean[])
         * @see #nullSafeHashCode(byte[])
         * @see #nullSafeHashCode(char[])
         * @see #nullSafeHashCode(double[])
         * @see #nullSafeHashCode(float[])
         * @see #nullSafeHashCode(int[])
         * @see #nullSafeHashCode(long[])
         * @see #nullSafeHashCode(short[])
         */
        public static int nullSafeHashCode(Object obj) {
            if (obj == null) {
                return 0;
            }
            if (obj.getClass().isArray()) {
                if (obj instanceof Object[]) {
                    return nullSafeHashCode((Object[]) obj);
                }
                if (obj instanceof boolean[]) {
                    return nullSafeHashCode((boolean[]) obj);
                }
                if (obj instanceof byte[]) {
                    return nullSafeHashCode((byte[]) obj);
                }
                if (obj instanceof char[]) {
                    return nullSafeHashCode((char[]) obj);
                }
                if (obj instanceof double[]) {
                    return nullSafeHashCode((double[]) obj);
                }
                if (obj instanceof float[]) {
                    return nullSafeHashCode((float[]) obj);
                }
                if (obj instanceof int[]) {
                    return nullSafeHashCode((int[]) obj);
                }
                if (obj instanceof long[]) {
                    return nullSafeHashCode((long[]) obj);
                }
                if (obj instanceof short[]) {
                    return nullSafeHashCode((short[]) obj);
                }
            }
            return obj.hashCode();
        }
    
        /**
         * Return a hash code based on the contents of the specified array.
         * If {@code array} is {@code null}, this method returns 0.
         */
        public static int nullSafeHashCode(Object[] array) {
            if (array == null) {
                return 0;
            }
            int hash = INITIAL_HASH;
            for (Object element : array) {
                hash = MULTIPLIER * hash + nullSafeHashCode(element);
            }
            return hash;
        }
    
        /**
         * Return a hash code based on the contents of the specified array.
         * If {@code array} is {@code null}, this method returns 0.
         */
        public static int nullSafeHashCode(boolean[] array) {
            if (array == null) {
                return 0;
            }
            int hash = INITIAL_HASH;
            for (boolean element : array) {
                hash = MULTIPLIER * hash + hashCode(element);
            }
            return hash;
        }
    
        /**
         * Return a hash code based on the contents of the specified array.
         * If {@code array} is {@code null}, this method returns 0.
         */
        public static int nullSafeHashCode(byte[] array) {
            if (array == null) {
                return 0;
            }
            int hash = INITIAL_HASH;
            for (byte element : array) {
                hash = MULTIPLIER * hash + element;
            }
            return hash;
        }
    
        /**
         * Return a hash code based on the contents of the specified array.
         * If {@code array} is {@code null}, this method returns 0.
         */
        public static int nullSafeHashCode(char[] array) {
            if (array == null) {
                return 0;
            }
            int hash = INITIAL_HASH;
            for (char element : array) {
                hash = MULTIPLIER * hash + element;
            }
            return hash;
        }
    
        /**
         * Return a hash code based on the contents of the specified array.
         * If {@code array} is {@code null}, this method returns 0.
         */
        public static int nullSafeHashCode(double[] array) {
            if (array == null) {
                return 0;
            }
            int hash = INITIAL_HASH;
            for (double element : array) {
                hash = MULTIPLIER * hash + hashCode(element);
            }
            return hash;
        }
    
        /**
         * Return a hash code based on the contents of the specified array.
         * If {@code array} is {@code null}, this method returns 0.
         */
        public static int nullSafeHashCode(float[] array) {
            if (array == null) {
                return 0;
            }
            int hash = INITIAL_HASH;
            for (float element : array) {
                hash = MULTIPLIER * hash + hashCode(element);
            }
            return hash;
        }
    
        /**
         * Return a hash code based on the contents of the specified array.
         * If {@code array} is {@code null}, this method returns 0.
         */
        public static int nullSafeHashCode(int[] array) {
            if (array == null) {
                return 0;
            }
            int hash = INITIAL_HASH;
            for (int element : array) {
                hash = MULTIPLIER * hash + element;
            }
            return hash;
        }
    
        /**
         * Return a hash code based on the contents of the specified array.
         * If {@code array} is {@code null}, this method returns 0.
         */
        public static int nullSafeHashCode(long[] array) {
            if (array == null) {
                return 0;
            }
            int hash = INITIAL_HASH;
            for (long element : array) {
                hash = MULTIPLIER * hash + hashCode(element);
            }
            return hash;
        }
    
        /**
         * Return a hash code based on the contents of the specified array.
         * If {@code array} is {@code null}, this method returns 0.
         */
        public static int nullSafeHashCode(short[] array) {
            if (array == null) {
                return 0;
            }
            int hash = INITIAL_HASH;
            for (short element : array) {
                hash = MULTIPLIER * hash + element;
            }
            return hash;
        }
    
        /**
         * Return the same value as {@link Boolean#hashCode()}}.
         * @see Boolean#hashCode()
         */
        public static int hashCode(boolean bool) {
            return (bool ? 1231 : 1237);
        }
    
        /**
         * Return the same value as {@link Double#hashCode()}}.
         * @see Double#hashCode()
         */
        public static int hashCode(double dbl) {
            return hashCode(Double.doubleToLongBits(dbl));
        }
    
        /**
         * Return the same value as {@link Float#hashCode()}}.
         * @see Float#hashCode()
         */
        public static int hashCode(float flt) {
            return Float.floatToIntBits(flt);
        }
    
        /**
         * Return the same value as {@link Long#hashCode()}}.
         * @see Long#hashCode()
         */
        public static int hashCode(long lng) {
            return (int) (lng ^ (lng >>> 32));
        }
  • 相关阅读:
    对象排序
    MYSQL连不上
    JS读取.properties文件的方法
    Jquery简单使用
    JSP中request获取值
    MYSQL修改字段
    配置文件读取
    spring注解
    Route@简单应用
    MVC客户端验证的小示例
  • 原文地址:https://www.cnblogs.com/ghgyj/p/4027905.html
Copyright © 2020-2023  润新知