zoukankan      html  css  js  c++  java
  • java 检查是否是数组 检查是否是空数组 检查数组是否包含某个元素

        /**
         * Determine whether the given object is an array:
         * either an Object array or a primitive array.
         * @param obj the object to check
         */
        public static boolean isArray(Object obj) {
            return (obj != null && obj.getClass().isArray());
        }
        /**
         * Determine whether the given array is empty:
         * i.e. {@code null} or of zero length.
         * @param array the array to check
         */
        public static boolean isEmpty(Object[] array) {
            return (array == null || array.length == 0);
        }
        /**
         * Check whether the given array contains the given element.
         * @param array the array to check (may be {@code null},
         * in which case the return value will always be {@code false})
         * @param element the element to check for
         * @return whether the element has been found in the given array
         */
        public static boolean containsElement(Object[] array, Object element) {
            if (array == null) {
                return false;
            }
            for (Object arrayEle : array) {
                if (nullSafeEquals(arrayEle, element)) {
                    return true;
                }
            }
            return false;
        }

    两个对象是否相等,包括数数组

        /**
         * Determine if the given objects are equal, returning {@code true}
         * if both are {@code null} or {@code false} if only one is
         * {@code null}.
         * <p>Compares arrays with {@code Arrays.equals}, performing an equality
         * check based on the array elements rather than the array reference.
         * @param o1 first Object to compare
         * @param o2 second Object to compare
         * @return whether the given objects are equal
         * @see java.util.Arrays#equals
         */
        public static boolean nullSafeEquals(Object o1, Object o2) {
            if (o1 == o2) {
                return true;
            }
            if (o1 == null || o2 == null) {
                return false;
            }
            if (o1.equals(o2)) {
                return true;
            }
            if (o1.getClass().isArray() && o2.getClass().isArray()) {
                if (o1 instanceof Object[] && o2 instanceof Object[]) {
                    return Arrays.equals((Object[]) o1, (Object[]) o2);
                }
                if (o1 instanceof boolean[] && o2 instanceof boolean[]) {
                    return Arrays.equals((boolean[]) o1, (boolean[]) o2);
                }
                if (o1 instanceof byte[] && o2 instanceof byte[]) {
                    return Arrays.equals((byte[]) o1, (byte[]) o2);
                }
                if (o1 instanceof char[] && o2 instanceof char[]) {
                    return Arrays.equals((char[]) o1, (char[]) o2);
                }
                if (o1 instanceof double[] && o2 instanceof double[]) {
                    return Arrays.equals((double[]) o1, (double[]) o2);
                }
                if (o1 instanceof float[] && o2 instanceof float[]) {
                    return Arrays.equals((float[]) o1, (float[]) o2);
                }
                if (o1 instanceof int[] && o2 instanceof int[]) {
                    return Arrays.equals((int[]) o1, (int[]) o2);
                }
                if (o1 instanceof long[] && o2 instanceof long[]) {
                    return Arrays.equals((long[]) o1, (long[]) o2);
                }
                if (o1 instanceof short[] && o2 instanceof short[]) {
                    return Arrays.equals((short[]) o1, (short[]) o2);
                }
            }
            return false;
        }

    判断枚举数组中是否包含某个字符串(忽略大小写)

        /**
         * Check whether the given array of enum constants contains a constant with the given name,
         * ignoring case when determining a match.
         * @param enumValues the enum values to check, typically the product of a call to MyEnum.values()
         * @param constant the constant name to find (must not be null or empty string)
         * @return whether the constant has been found in the given array
         */
        public static boolean containsConstant(Enum<?>[] enumValues, String constant) {
            return containsConstant(enumValues, constant, false);
        }

    判断枚举数组中是否包含某个字符串

        /**
         * Check whether the given array of enum constants contains a constant with the given name.
         * @param enumValues the enum values to check, typically the product of a call to MyEnum.values()
         * @param constant the constant name to find (must not be null or empty string)
         * @param caseSensitive whether case is significant in determining a match
         * @return whether the constant has been found in the given array
         */
        public static boolean containsConstant(Enum<?>[] enumValues, String constant, boolean caseSensitive) {
            for (Enum<?> candidate : enumValues) {
                if (caseSensitive ?
                        candidate.toString().equals(constant) :
                        candidate.toString().equalsIgnoreCase(constant)) {
                    return true;
                }
            }
            return false;
        }
        /**
         * Case insensitive alternative to {@link Enum#valueOf(Class, String)}.
         * @param <E> the concrete Enum type
         * @param enumValues the array of all Enum constants in question, usually per Enum.values()
         * @param constant the constant to get the enum value of
         * @throws IllegalArgumentException if the given constant is not found in the given array
         * of enum values. Use {@link #containsConstant(Enum[], String)} as a guard to avoid this exception.
         */
        public static <E extends Enum<?>> E caseInsensitiveValueOf(E[] enumValues, String constant) {
            for (E candidate : enumValues) {
                if (candidate.toString().equalsIgnoreCase(constant)) {
                    return candidate;
                }
            }
            throw new IllegalArgumentException(
                    String.format("constant [%s] does not exist in enum type %s",
                            constant, enumValues.getClass().getComponentType().getName()));
        }
  • 相关阅读:
    js 实现商品放大镜效果
    Angular.js数据绑定时自动转义html标签及内容
    Sublime 快捷键一览表
    这么牛的简历,你见过么?
    正向代理与反向代理
    负载均衡
    redis搭建与安装
    svn服务配置和日常维护命令
    Mysql导出导入
    linux搭建svn服务器
  • 原文地址:https://www.cnblogs.com/ghgyj/p/4027901.html
Copyright © 2011-2022 走看看