@@ -0,0 +1,1906 @@
+package com.caspar.hoe;%0A%0A/**%0A * Array manipulation library%0A *%0A * @author caspar.chen%0A * @date 2018/9/12%0A **/%0Apublic class ArrayHoe %7B%0A%0A    public static boolean isEmpty(Object%5B%5D array) %7B%0A        return array == null %7C%7C array.length == 0;%0A    %7D%0A%0A    public static boolean isNotEmpty(Object%5B%5D array) %7B%0A        return !isEmpty(array);%0A    %7D%0A%0A    public static boolean contains(Object%5B%5D array, Object obj) %7B%0A        return indexOf(array, obj) != -1;%0A    %7D%0A%0A    public static int indexOf(Object%5B%5D array, Object obj) %7B%0A        return indexOf(array, obj, 0);%0A    %7D%0A%0A    public static int indexOf(Object%5B%5D array, Object obj, int startIndex) %7B%0A        if (isEmpty(array)) %7B%0A            return -1;%0A        %7D else %7B%0A            if (startIndex %3C 0) %7B%0A                startIndex = 0;%0A            %7D%0A%0A            int i;%0A            if (obj == null) %7B%0A                for (i = startIndex; i %3C array.length; ++i) %7B%0A                    if (array%5Bi%5D == null) %7B%0A                        return i;%0A                    %7D%0A                %7D%0A            %7D else if (array.getClass().getComponentType().isInstance(obj)) %7B%0A                for (i = startIndex; i %3C array.length; ++i) %7B%0A                    if (obj.equals(array%5Bi%5D)) %7B%0A                        return i;%0A                    %7D%0A                %7D%0A            %7D%0A%0A            return -1;%0A        %7D%0A    %7D%0A%0A    /**%0A     * toString --%3E %5B1,2,3,4%5D%0A     *%0A     * @param a%0A     * @return%0A     */%0A    public static String toString(Object%5B%5D a) %7B%0A        if (a == null) %7B%0A            return %22null%22;%0A        %7D%0A%0A        int iMax = a.length - 1;%0A        if (iMax == -1) %7B%0A            return %22%5B%5D%22;%0A        %7D%0A%0A        StringBuilder b = new StringBuilder();%0A        b.append('%5B');%0A        for (int i = 0; ; i++) %7B%0A            b.append(String.valueOf(a%5Bi%5D));%0A            if (i == iMax) %7B%0A                return b.append('%5D').toString();%0A            %7D%0A            b.append(%22,%22);%0A        %7D%0A    %7D%0A%7D%0A

add ArrayHoe