scolebourne 2003/07/12 03:09:40 Modified: lang/src/java/org/apache/commons/lang ArrayUtils.java lang/src/test/org/apache/commons/lang ArrayUtilsTest.java Log: Add indexOf for primitive arrays Revision Changes Path 1.17 +760 -50 jakarta-commons/lang/src/java/org/apache/commons/lang/ArrayUtils.java Index: ArrayUtils.java =================================================================== RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/ArrayUtils.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- ArrayUtils.java 28 Jun 2003 18:01:18 -0000 1.16 +++ ArrayUtils.java 12 Jul 2003 10:09:40 -0000 1.17 @@ -201,7 +201,7 @@ * {"BLUE", "#0000FF"}}); * </pre> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array an array whose elements are either a [EMAIL PROTECTED] java.util.Map.Entry} or * an Array containing at least two elements, may be <code>null</code> @@ -238,6 +238,7 @@ return map; } + // Clone //----------------------------------------------------------------------- /** * <p>Shallow clones an array returning a typecast result and handling @@ -246,7 +247,7 @@ * <p>The objecs in the array are not cloned, thus there is no special * handling for multi-dimensional arrays.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to shallow clone, may be <code>null</code> * @return the cloned array, or <code>null</code> if <code>null</code> @@ -263,7 +264,7 @@ * <p>Clones an array returning a typecast result and handling * <code>null</code>.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to clone, may be <code>null</code> * @return the cloned array, or <code>null</code> if <code>null</code> @@ -280,7 +281,7 @@ * <p>Clones an array returning a typecast result and handling * <code>null</code>.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to clone, may be <code>null</code> * @return the cloned array, or <code>null</code> if <code>null</code> @@ -297,7 +298,7 @@ * <p>Clones an array returning a typecast result and handling * <code>null</code>.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to clone, may be <code>null</code> * @return the cloned array, or <code>null</code> if <code>null</code> @@ -314,7 +315,7 @@ * <p>Clones an array returning a typecast result and handling * <code>null</code>.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to clone, may be <code>null</code> * @return the cloned array, or <code>null</code> if <code>null</code> @@ -331,7 +332,7 @@ * <p>Clones an array returning a typecast result and handling * <code>null</code>.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to clone, may be <code>null</code> * @return the cloned array, or <code>null</code> if <code>null</code> @@ -348,7 +349,7 @@ * <p>Clones an array returning a typecast result and handling * <code>null</code>.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to clone, may be <code>null</code> * @return the cloned array, or <code>null</code> if <code>null</code> @@ -365,7 +366,7 @@ * <p>Clones an array returning a typecast result and handling * <code>null</code>.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to clone, may be <code>null</code> * @return the cloned array, or <code>null</code> if <code>null</code> @@ -382,7 +383,7 @@ * <p>Clones an array returning a typecast result and handling * <code>null</code>.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to clone, may be <code>null</code> * @return the cloned array, or <code>null</code> if <code>null</code> @@ -395,6 +396,7 @@ return (boolean[]) array.clone(); } + // Is same length //----------------------------------------------------------------------- /** * <p>Checks whether two arrays are the same length, treating @@ -576,13 +578,14 @@ return array1.getClass().getName().equals(array2.getClass().getName()); } + // Reverse //----------------------------------------------------------------------- /** * <p>Reverses the order of the given array.</p> * * <p>There is no special handling for multi-dimensional arrays.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to reverse, may be <code>null</code> */ @@ -605,7 +608,7 @@ /** * <p>Reverses the order of the given array.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to reverse, may be <code>null</code> */ @@ -628,7 +631,7 @@ /** * <p>Reverses the order of the given array.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to reverse, may be <code>null</code> */ @@ -651,7 +654,7 @@ /** * <p>Reverses the order of the given array.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to reverse, may be <code>null</code> */ @@ -674,7 +677,7 @@ /** * <p>Reverses the order of the given array.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to reverse, may be <code>null</code> */ @@ -697,7 +700,7 @@ /** * <p>Reverses the order of the given array.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to reverse, may be <code>null</code> */ @@ -720,7 +723,7 @@ /** * <p>Reverses the order of the given array.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to reverse, may be <code>null</code> */ @@ -743,7 +746,7 @@ /** * <p>Reverses the order of the given array.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to reverse, may be <code>null</code> */ @@ -766,7 +769,7 @@ /** * <p>Reverses the order of the given array.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array the array to reverse, may be <code>null</code> */ @@ -786,12 +789,15 @@ } } - // IndexOf + // IndexOf search + // ---------------------------------------------------------------------- + + // Object IndexOf //----------------------------------------------------------------------- /** * <p>Find the index of the given object in the array.</p> * - * <p>This method returns <code>-1</code> if <code>null</code> input.</p> + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> * * @param array the array to search through for the object, may be <code>null</code> * @param objectToFind the object to find, may be <code>null</code> @@ -804,7 +810,7 @@ /** * <p>Find the index of the given object in the array starting at the given index.</p> * - * <p>This method returns <code>-1</code> if <code>null</code> input.</p> + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> * * <p>A negative startIndex is treated as zero. A startIndex larger than the array * length will return -1.</p> @@ -841,23 +847,20 @@ /** * <p>Find the last index of the given object within the array.</p> * - * <p>This method returns <code>-1</code> if <code>null</code> input.</p> + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> * * @param array the array to travers backwords looking for the object, may be <code>null</code> * @param objectToFind the object to find, may be <code>null</code> * @return the last index of the object to find, or -1 if not found */ public static int lastIndexOf(final Object[] array, final Object objectToFind) { - if (array == null) { - return -1; - } - return lastIndexOf(array, objectToFind, array.length - 1); + return lastIndexOf(array, objectToFind, Integer.MAX_VALUE); } /** * <p>Find the last index of the given object in the array starting at the given index.</p> * - * <p>This method returns <code>-1</code> if <code>null</code> input.</p> + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> * * <p>A negative startIndex will return -1. A startIndex larger than the array * length will search from the end of the array.</p> @@ -906,6 +909,713 @@ return (indexOf(array, objectToFind) != -1); } + // long IndexOf + //----------------------------------------------------------------------- + /** + * <p>Find the index of the given value in the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @return the index of the value within the array, or -1 if not found + */ + public static int indexOf(final long[] array, final long valueToFind) { + return indexOf(array, valueToFind, 0); + } + + /** + * <p>Find the index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex is treated as zero. A startIndex larger than the array + * length will return -1.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the index to start searching at + * @return the index of the value within the array starting at the + * given index, or -1 if not found + */ + public static int indexOf(final long[] array, final long valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + startIndex = 0; + } + for (int i = startIndex; i < array.length; i++) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Find the last index of the given value within the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to travers backwords looking for the object, may be <code>null</code> + * @param valueToFind the object to find + * @return the last index of the value to find, or -1 if not found + */ + public static int lastIndexOf(final long[] array, final long valueToFind) { + return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); + } + + /** + * <p>Find the last index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex will return -1. A startIndex larger than the array + * length will search from the end of the array.</p> + * + * @param array the array to traverse for looking for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the start index to travers backwards from + * @return the last index of the value within the array starting at the given index, + * or -1 if not found + */ + public static int lastIndexOf(final long[] array, final long valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + return -1; + } else if (startIndex >= array.length) { + startIndex = array.length - 1; + } + for (int i = startIndex; i >= 0; i--) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Checks if the value is in the given array.</p> + * + * <p>The method returns <code>false</code> if a <code>null</code> array is passed in.</p> + * + * @param array the array to search through + * @param valueToFind the value to find + * @return <code>true</code> if the array contains the object + */ + public static boolean contains(final long[] array, final long valueToFind) { + return (indexOf(array, valueToFind) != -1); + } + + // int IndexOf + //----------------------------------------------------------------------- + /** + * <p>Find the index of the given value in the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @return the index of the value within the array, or -1 if not found + */ + public static int indexOf(final int[] array, final int valueToFind) { + return indexOf(array, valueToFind, 0); + } + + /** + * <p>Find the index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex is treated as zero. A startIndex larger than the array + * length will return -1.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the index to start searching at + * @return the index of the value within the array starting at the + * given index, or -1 if not found + */ + public static int indexOf(final int[] array, final int valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + startIndex = 0; + } + for (int i = startIndex; i < array.length; i++) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Find the last index of the given value within the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to travers backwords looking for the object, may be <code>null</code> + * @param valueToFind the object to find + * @return the last index of the value to find, or -1 if not found + */ + public static int lastIndexOf(final int[] array, final int valueToFind) { + return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); + } + + /** + * <p>Find the last index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex will return -1. A startIndex larger than the array + * length will search from the end of the array.</p> + * + * @param array the array to traverse for looking for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the start index to travers backwards from + * @return the last index of the value within the array starting at the given index, + * or -1 if not found + */ + public static int lastIndexOf(final int[] array, final int valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + return -1; + } else if (startIndex >= array.length) { + startIndex = array.length - 1; + } + for (int i = startIndex; i >= 0; i--) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Checks if the value is in the given array.</p> + * + * <p>The method returns <code>false</code> if a <code>null</code> array is passed in.</p> + * + * @param array the array to search through + * @param valueToFind the value to find + * @return <code>true</code> if the array contains the object + */ + public static boolean contains(final int[] array, final int valueToFind) { + return (indexOf(array, valueToFind) != -1); + } + + // short IndexOf + //----------------------------------------------------------------------- + /** + * <p>Find the index of the given value in the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @return the index of the value within the array, or -1 if not found + */ + public static int indexOf(final short[] array, final short valueToFind) { + return indexOf(array, valueToFind, 0); + } + + /** + * <p>Find the index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex is treated as zero. A startIndex larger than the array + * length will return -1.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the index to start searching at + * @return the index of the value within the array starting at the + * given index, or -1 if not found + */ + public static int indexOf(final short[] array, final short valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + startIndex = 0; + } + for (int i = startIndex; i < array.length; i++) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Find the last index of the given value within the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to travers backwords looking for the object, may be <code>null</code> + * @param valueToFind the object to find + * @return the last index of the value to find, or -1 if not found + */ + public static int lastIndexOf(final short[] array, final short valueToFind) { + return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); + } + + /** + * <p>Find the last index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex will return -1. A startIndex larger than the array + * length will search from the end of the array.</p> + * + * @param array the array to traverse for looking for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the start index to travers backwards from + * @return the last index of the value within the array starting at the given index, + * or -1 if not found + */ + public static int lastIndexOf(final short[] array, final short valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + return -1; + } else if (startIndex >= array.length) { + startIndex = array.length - 1; + } + for (int i = startIndex; i >= 0; i--) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Checks if the value is in the given array.</p> + * + * <p>The method returns <code>false</code> if a <code>null</code> array is passed in.</p> + * + * @param array the array to search through + * @param valueToFind the value to find + * @return <code>true</code> if the array contains the object + */ + public static boolean contains(final short[] array, final short valueToFind) { + return (indexOf(array, valueToFind) != -1); + } + + // byte IndexOf + //----------------------------------------------------------------------- + /** + * <p>Find the index of the given value in the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @return the index of the value within the array, or -1 if not found + */ + public static int indexOf(final byte[] array, final byte valueToFind) { + return indexOf(array, valueToFind, 0); + } + + /** + * <p>Find the index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex is treated as zero. A startIndex larger than the array + * length will return -1.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the index to start searching at + * @return the index of the value within the array starting at the + * given index, or -1 if not found + */ + public static int indexOf(final byte[] array, final byte valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + startIndex = 0; + } + for (int i = startIndex; i < array.length; i++) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Find the last index of the given value within the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to travers backwords looking for the object, may be <code>null</code> + * @param valueToFind the object to find + * @return the last index of the value to find, or -1 if not found + */ + public static int lastIndexOf(final byte[] array, final byte valueToFind) { + return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); + } + + /** + * <p>Find the last index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex will return -1. A startIndex larger than the array + * length will search from the end of the array.</p> + * + * @param array the array to traverse for looking for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the start index to travers backwards from + * @return the last index of the value within the array starting at the given index, + * or -1 if not found + */ + public static int lastIndexOf(final byte[] array, final byte valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + return -1; + } else if (startIndex >= array.length) { + startIndex = array.length - 1; + } + for (int i = startIndex; i >= 0; i--) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Checks if the value is in the given array.</p> + * + * <p>The method returns <code>false</code> if a <code>null</code> array is passed in.</p> + * + * @param array the array to search through + * @param valueToFind the value to find + * @return <code>true</code> if the array contains the object + */ + public static boolean contains(final byte[] array, final byte valueToFind) { + return (indexOf(array, valueToFind) != -1); + } + + // double IndexOf + //----------------------------------------------------------------------- + /** + * <p>Find the index of the given value in the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @return the index of the value within the array, or -1 if not found + */ + public static int indexOf(final double[] array, final double valueToFind) { + return indexOf(array, valueToFind, 0); + } + + /** + * <p>Find the index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex is treated as zero. A startIndex larger than the array + * length will return -1.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the index to start searching at + * @return the index of the value within the array starting at the + * given index, or -1 if not found + */ + public static int indexOf(final double[] array, final double valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + startIndex = 0; + } + for (int i = startIndex; i < array.length; i++) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Find the last index of the given value within the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to travers backwords looking for the object, may be <code>null</code> + * @param valueToFind the object to find + * @return the last index of the value to find, or -1 if not found + */ + public static int lastIndexOf(final double[] array, final double valueToFind) { + return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); + } + + /** + * <p>Find the last index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex will return -1. A startIndex larger than the array + * length will search from the end of the array.</p> + * + * @param array the array to traverse for looking for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the start index to travers backwards from + * @return the last index of the value within the array starting at the given index, + * or -1 if not found + */ + public static int lastIndexOf(final double[] array, final double valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + return -1; + } else if (startIndex >= array.length) { + startIndex = array.length - 1; + } + for (int i = startIndex; i >= 0; i--) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Checks if the value is in the given array.</p> + * + * <p>The method returns <code>false</code> if a <code>null</code> array is passed in.</p> + * + * @param array the array to search through + * @param valueToFind the value to find + * @return <code>true</code> if the array contains the object + */ + public static boolean contains(final double[] array, final double valueToFind) { + return (indexOf(array, valueToFind) != -1); + } + + // float IndexOf + //----------------------------------------------------------------------- + /** + * <p>Find the index of the given value in the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @return the index of the value within the array, or -1 if not found + */ + public static int indexOf(final float[] array, final float valueToFind) { + return indexOf(array, valueToFind, 0); + } + + /** + * <p>Find the index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex is treated as zero. A startIndex larger than the array + * length will return -1.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the index to start searching at + * @return the index of the value within the array starting at the + * given index, or -1 if not found + */ + public static int indexOf(final float[] array, final float valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + startIndex = 0; + } + for (int i = startIndex; i < array.length; i++) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Find the last index of the given value within the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to travers backwords looking for the object, may be <code>null</code> + * @param valueToFind the object to find + * @return the last index of the value to find, or -1 if not found + */ + public static int lastIndexOf(final float[] array, final float valueToFind) { + return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); + } + + /** + * <p>Find the last index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex will return -1. A startIndex larger than the array + * length will search from the end of the array.</p> + * + * @param array the array to traverse for looking for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the start index to travers backwards from + * @return the last index of the value within the array starting at the given index, + * or -1 if not found + */ + public static int lastIndexOf(final float[] array, final float valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + return -1; + } else if (startIndex >= array.length) { + startIndex = array.length - 1; + } + for (int i = startIndex; i >= 0; i--) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Checks if the value is in the given array.</p> + * + * <p>The method returns <code>false</code> if a <code>null</code> array is passed in.</p> + * + * @param array the array to search through + * @param valueToFind the value to find + * @return <code>true</code> if the array contains the object + */ + public static boolean contains(final float[] array, final float valueToFind) { + return (indexOf(array, valueToFind) != -1); + } + + // boolean IndexOf + //----------------------------------------------------------------------- + /** + * <p>Find the index of the given value in the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @return the index of the value within the array, or -1 if not found + */ + public static int indexOf(final boolean[] array, final boolean valueToFind) { + return indexOf(array, valueToFind, 0); + } + + /** + * <p>Find the index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex is treated as zero. A startIndex larger than the array + * length will return -1.</p> + * + * @param array the array to search through for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the index to start searching at + * @return the index of the value within the array starting at the + * given index, or -1 if not found + */ + public static int indexOf(final boolean[] array, final boolean valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + startIndex = 0; + } + for (int i = startIndex; i < array.length; i++) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Find the last index of the given value within the array.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * @param array the array to travers backwords looking for the object, may be <code>null</code> + * @param valueToFind the object to find + * @return the last index of the value to find, or -1 if not found + */ + public static int lastIndexOf(final boolean[] array, final boolean valueToFind) { + return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); + } + + /** + * <p>Find the last index of the given value in the array starting at the given index.</p> + * + * <p>This method returns <code>-1</code> if <code>null</code> array input.</p> + * + * <p>A negative startIndex will return -1. A startIndex larger than the array + * length will search from the end of the array.</p> + * + * @param array the array to traverse for looking for the object, may be <code>null</code> + * @param valueToFind the value to find + * @param startIndex the start index to travers backwards from + * @return the last index of the value within the array starting at the given index, + * or -1 if not found + */ + public static int lastIndexOf(final boolean[] array, final boolean valueToFind, int startIndex) { + if (array == null) { + return -1; + } + if (startIndex < 0) { + return -1; + } else if (startIndex >= array.length) { + startIndex = array.length - 1; + } + for (int i = startIndex; i >= 0; i--) { + if (valueToFind == array[i]) { + return i; + } + } + return -1; + } + + /** + * <p>Checks if the value is in the given array.</p> + * + * <p>The method returns <code>false</code> if a <code>null</code> array is passed in.</p> + * + * @param array the array to search through + * @param valueToFind the value to find + * @return <code>true</code> if the array contains the object + */ + public static boolean contains(final boolean[] array, final boolean valueToFind) { + return (indexOf(array, valueToFind) != -1); + } + // Primitive/Object array converters // ---------------------------------------------------------------------- @@ -914,7 +1624,7 @@ /** * <p>Converts an array of object Booleans to primitives.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Boolean</code> array, may be <code>null</code> * @return a <code>boolean</code> array @@ -936,7 +1646,7 @@ /** * <p>Converts an array of object Booleans to primitives handling null.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Boolean</code> array, may be <code>null</code> * @param valueForNull the value to insert if <code>null</code> found @@ -959,7 +1669,7 @@ /** * <p>Converts an array of primitive booleans to objects.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>boolean</code> array * @return a <code>Boolean</code> array @@ -982,7 +1692,7 @@ /** * <p>Converts an array of object Bytes to primitives.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Byte</code> array, may be <code>null</code> * @return a <code>byte</code> array @@ -1004,7 +1714,7 @@ /** * <p>Converts an array of object Bytes to primitives handling null.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Byte</code> array, may be <code>null</code> * @param valueForNull the value to insert if <code>null</code> found @@ -1027,7 +1737,7 @@ /** * <p>Converts an array of primitive bytes to objects.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>byte</code> array * @return a <code>Byte</code> array @@ -1050,7 +1760,7 @@ /** * <p>Converts an array of object Shorts to primitives.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Short</code> array, may be <code>null</code> * @return a <code>byte</code> array @@ -1072,7 +1782,7 @@ /** * <p>Converts an array of object Short to primitives handling null.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Short</code> array, may be <code>null</code> * @param valueForNull the value to insert if <code>null</code> found @@ -1095,7 +1805,7 @@ /** * <p>Converts an array of primitive shorts to objects.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>short</code> array * @return a <code>Short</code> array @@ -1118,7 +1828,7 @@ /** * <p>Converts an array of object Integers to primitives.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Integer</code> array, may be <code>null</code> * @return an <code>int</code> array @@ -1140,7 +1850,7 @@ /** * <p>Converts an array of object Integer to primitives handling null.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Integer</code> array, may be <code>null</code> * @param valueForNull the value to insert if <code>null</code> found @@ -1163,7 +1873,7 @@ /** * <p>Converts an array of primitive ints to objects.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array an <code>int</code> array * @return an <code>Integer</code> array @@ -1186,7 +1896,7 @@ /** * <p>Converts an array of object Longs to primitives.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Long</code> array, may be <code>null</code> * @return a <code>long</code> array @@ -1208,7 +1918,7 @@ /** * <p>Converts an array of object Long to primitives handling null.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Long</code> array, may be <code>null</code> * @param valueForNull the value to insert if <code>null</code> found @@ -1231,7 +1941,7 @@ /** * <p>Converts an array of primitive longs to objects.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>long</code> array * @return a <code>Long</code> array @@ -1254,7 +1964,7 @@ /** * <p>Converts an array of object Floats to primitives.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Float</code> array, may be <code>null</code> * @return a <code>float</code> array @@ -1276,7 +1986,7 @@ /** * <p>Converts an array of object Floats to primitives handling null.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Float</code> array, may be <code>null</code> * @param valueForNull the value to insert if <code>null</code> found @@ -1299,7 +2009,7 @@ /** * <p>Converts an array of primitive floats to objects.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>float</code> array * @return a <code>Float</code> array @@ -1322,7 +2032,7 @@ /** * <p>Converts an array of object Doubles to primitives.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Double</code> array, may be <code>null</code> * @return a <code>double</code> array @@ -1344,7 +2054,7 @@ /** * <p>Converts an array of object Doubles to primitives handling null.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>Double</code> array, may be <code>null</code> * @param valueForNull the value to insert if <code>null</code> found @@ -1367,7 +2077,7 @@ /** * <p>Converts an array of primitive doubles to objects.</p> * - * <p>This method returns <code>null</code> if <code>null</code> input.</p> + * <p>This method returns <code>null</code> if <code>null</code> array input.</p> * * @param array a <code>double</code> array * @return a <code>Double</code> array 1.9 +404 -3 jakarta-commons/lang/src/test/org/apache/commons/lang/ArrayUtilsTest.java Index: ArrayUtilsTest.java =================================================================== RCS file: /home/cvs/jakarta-commons/lang/src/test/org/apache/commons/lang/ArrayUtilsTest.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- ArrayUtilsTest.java 28 Jun 2003 18:01:19 -0000 1.8 +++ ArrayUtilsTest.java 12 Jul 2003 10:09:40 -0000 1.9 @@ -659,7 +659,7 @@ assertEquals(2, ArrayUtils.indexOf(array, "2", 2)); assertEquals(3, ArrayUtils.indexOf(array, "3", 2)); assertEquals(4, ArrayUtils.indexOf(array, null, 2)); - assertEquals(-1, ArrayUtils.indexOf(array, "notInArray")); + assertEquals(-1, ArrayUtils.indexOf(array, "notInArray", 2)); assertEquals(4, ArrayUtils.indexOf(array, null, -1)); assertEquals(-1, ArrayUtils.indexOf(array, "0", 6)); @@ -687,7 +687,7 @@ assertEquals(-1, ArrayUtils.lastIndexOf(array, "3", 2)); assertEquals(4, ArrayUtils.lastIndexOf(array, null, 5)); assertEquals(-1, ArrayUtils.lastIndexOf(array, null, 2)); - assertEquals(-1, ArrayUtils.lastIndexOf(array, "notInArray")); + assertEquals(-1, ArrayUtils.lastIndexOf(array, "notInArray", 5)); assertEquals(-1, ArrayUtils.lastIndexOf(array, null, -1)); assertEquals(5, ArrayUtils.lastIndexOf(array, "0", 88)); @@ -703,6 +703,407 @@ assertEquals(true, ArrayUtils.contains(array, "3")); assertEquals(true, ArrayUtils.contains(array, null)); assertEquals(false, ArrayUtils.contains(array, "notInArray")); + } + + //----------------------------------------------------------------------- + public void testIndexOfLong() { + long[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, 0)); + array = new long[] { 0, 1, 2, 3, 0 }; + assertEquals(0, ArrayUtils.indexOf(array, 0)); + assertEquals(1, ArrayUtils.indexOf(array, 1)); + assertEquals(2, ArrayUtils.indexOf(array, 2)); + assertEquals(3, ArrayUtils.indexOf(array, 3)); + assertEquals(-1, ArrayUtils.indexOf(array, 99)); + } + + public void testIndexOfLongWithStartIndex() { + long[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, 0, 2)); + array = new long[] { 0, 1, 2, 3, 0 }; + assertEquals(4, ArrayUtils.indexOf(array, 0, 2)); + assertEquals(-1, ArrayUtils.indexOf(array, 1, 2)); + assertEquals(2, ArrayUtils.indexOf(array, 2, 2)); + assertEquals(3, ArrayUtils.indexOf(array, 3, 2)); + assertEquals(-1, ArrayUtils.indexOf(array, 99, 0)); + assertEquals(-1, ArrayUtils.indexOf(array, 0, 6)); + } + + public void testLastIndexOfLong() { + long[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, 0)); + array = new long[] { 0, 1, 2, 3, 0 }; + assertEquals(4, ArrayUtils.lastIndexOf(array, 0)); + assertEquals(1, ArrayUtils.lastIndexOf(array, 1)); + assertEquals(2, ArrayUtils.lastIndexOf(array, 2)); + assertEquals(3, ArrayUtils.lastIndexOf(array, 3)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, 99)); + } + + public void testLastIndexOfLongWithStartIndex() { + long[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, 0, 2)); + array = new long[] { 0, 1, 2, 3, 0 }; + assertEquals(0, ArrayUtils.lastIndexOf(array, 0, 2)); + assertEquals(1, ArrayUtils.lastIndexOf(array, 1, 2)); + assertEquals(2, ArrayUtils.lastIndexOf(array, 2, 2)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, 3, 2)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, 99)); + assertEquals(4, ArrayUtils.lastIndexOf(array, 0, 88)); + } + + public void testContainsLong() { + long[] array = null; + assertEquals(false, ArrayUtils.contains(array, 1)); + array = new long[] { 0, 1, 2, 3, 0 }; + assertEquals(true, ArrayUtils.contains(array, 0)); + assertEquals(true, ArrayUtils.contains(array, 1)); + assertEquals(true, ArrayUtils.contains(array, 2)); + assertEquals(true, ArrayUtils.contains(array, 3)); + assertEquals(false, ArrayUtils.contains(array, 99)); + } + + //----------------------------------------------------------------------- + public void testIndexOfInt() { + int[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, 0)); + array = new int[] { 0, 1, 2, 3, 0 }; + assertEquals(0, ArrayUtils.indexOf(array, 0)); + assertEquals(1, ArrayUtils.indexOf(array, 1)); + assertEquals(2, ArrayUtils.indexOf(array, 2)); + assertEquals(3, ArrayUtils.indexOf(array, 3)); + assertEquals(-1, ArrayUtils.indexOf(array, 99)); + } + + public void testIndexOfIntWithStartIndex() { + int[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, 0, 2)); + array = new int[] { 0, 1, 2, 3, 0 }; + assertEquals(4, ArrayUtils.indexOf(array, 0, 2)); + assertEquals(-1, ArrayUtils.indexOf(array, 1, 2)); + assertEquals(2, ArrayUtils.indexOf(array, 2, 2)); + assertEquals(3, ArrayUtils.indexOf(array, 3, 2)); + assertEquals(-1, ArrayUtils.indexOf(array, 99, 0)); + assertEquals(-1, ArrayUtils.indexOf(array, 0, 6)); + } + + public void testLastIndexOfInt() { + int[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, 0)); + array = new int[] { 0, 1, 2, 3, 0 }; + assertEquals(4, ArrayUtils.lastIndexOf(array, 0)); + assertEquals(1, ArrayUtils.lastIndexOf(array, 1)); + assertEquals(2, ArrayUtils.lastIndexOf(array, 2)); + assertEquals(3, ArrayUtils.lastIndexOf(array, 3)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, 99)); + } + + public void testLastIndexOfIntWithStartIndex() { + int[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, 0, 2)); + array = new int[] { 0, 1, 2, 3, 0 }; + assertEquals(0, ArrayUtils.lastIndexOf(array, 0, 2)); + assertEquals(1, ArrayUtils.lastIndexOf(array, 1, 2)); + assertEquals(2, ArrayUtils.lastIndexOf(array, 2, 2)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, 3, 2)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, 99)); + assertEquals(4, ArrayUtils.lastIndexOf(array, 0, 88)); + } + + public void testContainsInt() { + int[] array = null; + assertEquals(false, ArrayUtils.contains(array, 1)); + array = new int[] { 0, 1, 2, 3, 0 }; + assertEquals(true, ArrayUtils.contains(array, 0)); + assertEquals(true, ArrayUtils.contains(array, 1)); + assertEquals(true, ArrayUtils.contains(array, 2)); + assertEquals(true, ArrayUtils.contains(array, 3)); + assertEquals(false, ArrayUtils.contains(array, 99)); + } + + //----------------------------------------------------------------------- + public void testIndexOfShort() { + short[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, (short) 0)); + array = new short[] { 0, 1, 2, 3, 0 }; + assertEquals(0, ArrayUtils.indexOf(array, (short) 0)); + assertEquals(1, ArrayUtils.indexOf(array, (short) 1)); + assertEquals(2, ArrayUtils.indexOf(array, (short) 2)); + assertEquals(3, ArrayUtils.indexOf(array, (short) 3)); + assertEquals(-1, ArrayUtils.indexOf(array, (short) 99)); + } + + public void testIndexOfShortWithStartIndex() { + short[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, (short) 0, 2)); + array = new short[] { 0, 1, 2, 3, 0 }; + assertEquals(4, ArrayUtils.indexOf(array, (short) 0, 2)); + assertEquals(-1, ArrayUtils.indexOf(array, (short) 1, 2)); + assertEquals(2, ArrayUtils.indexOf(array, (short) 2, 2)); + assertEquals(3, ArrayUtils.indexOf(array, (short) 3, 2)); + assertEquals(-1, ArrayUtils.indexOf(array, (short) 99, 0)); + assertEquals(-1, ArrayUtils.indexOf(array, (short) 0, 6)); + } + + public void testLastIndexOfShort() { + short[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, (short) 0)); + array = new short[] { 0, 1, 2, 3, 0 }; + assertEquals(4, ArrayUtils.lastIndexOf(array, (short) 0)); + assertEquals(1, ArrayUtils.lastIndexOf(array, (short) 1)); + assertEquals(2, ArrayUtils.lastIndexOf(array, (short) 2)); + assertEquals(3, ArrayUtils.lastIndexOf(array, (short) 3)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, (short) 99)); + } + + public void testLastIndexOfShortWithStartIndex() { + short[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, (short) 0, 2)); + array = new short[] { 0, 1, 2, 3, 0 }; + assertEquals(0, ArrayUtils.lastIndexOf(array, (short) 0, 2)); + assertEquals(1, ArrayUtils.lastIndexOf(array, (short) 1, 2)); + assertEquals(2, ArrayUtils.lastIndexOf(array, (short) 2, 2)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, (short) 3, 2)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, (short) 99)); + assertEquals(4, ArrayUtils.lastIndexOf(array, (short) 0, 88)); + } + + public void testContainsShort() { + short[] array = null; + assertEquals(false, ArrayUtils.contains(array, (short) 1)); + array = new short[] { 0, 1, 2, 3, 0 }; + assertEquals(true, ArrayUtils.contains(array, (short) 0)); + assertEquals(true, ArrayUtils.contains(array, (short) 1)); + assertEquals(true, ArrayUtils.contains(array, (short) 2)); + assertEquals(true, ArrayUtils.contains(array, (short) 3)); + assertEquals(false, ArrayUtils.contains(array, (short) 99)); + } + + //----------------------------------------------------------------------- + public void testIndexOfByte() { + byte[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, (byte) 0)); + array = new byte[] { 0, 1, 2, 3, 0 }; + assertEquals(0, ArrayUtils.indexOf(array, (byte) 0)); + assertEquals(1, ArrayUtils.indexOf(array, (byte) 1)); + assertEquals(2, ArrayUtils.indexOf(array, (byte) 2)); + assertEquals(3, ArrayUtils.indexOf(array, (byte) 3)); + assertEquals(-1, ArrayUtils.indexOf(array, (byte) 99)); + } + + public void testIndexOfByteWithStartIndex() { + byte[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, (byte) 0, 2)); + array = new byte[] { 0, 1, 2, 3, 0 }; + assertEquals(4, ArrayUtils.indexOf(array, (byte) 0, 2)); + assertEquals(-1, ArrayUtils.indexOf(array, (byte) 1, 2)); + assertEquals(2, ArrayUtils.indexOf(array, (byte) 2, 2)); + assertEquals(3, ArrayUtils.indexOf(array, (byte) 3, 2)); + assertEquals(-1, ArrayUtils.indexOf(array, (byte) 99, 0)); + assertEquals(-1, ArrayUtils.indexOf(array, (byte) 0, 6)); + } + + public void testLastIndexOfByte() { + byte[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, (byte) 0)); + array = new byte[] { 0, 1, 2, 3, 0 }; + assertEquals(4, ArrayUtils.lastIndexOf(array, (byte) 0)); + assertEquals(1, ArrayUtils.lastIndexOf(array, (byte) 1)); + assertEquals(2, ArrayUtils.lastIndexOf(array, (byte) 2)); + assertEquals(3, ArrayUtils.lastIndexOf(array, (byte) 3)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, (byte) 99)); + } + + public void testLastIndexOfByteWithStartIndex() { + byte[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, (byte) 0, 2)); + array = new byte[] { 0, 1, 2, 3, 0 }; + assertEquals(0, ArrayUtils.lastIndexOf(array, (byte) 0, 2)); + assertEquals(1, ArrayUtils.lastIndexOf(array, (byte) 1, 2)); + assertEquals(2, ArrayUtils.lastIndexOf(array, (byte) 2, 2)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, (byte) 3, 2)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, (byte) 99)); + assertEquals(4, ArrayUtils.lastIndexOf(array, (byte) 0, 88)); + } + + public void testContainsByte() { + byte[] array = null; + assertEquals(false, ArrayUtils.contains(array, (byte) 1)); + array = new byte[] { 0, 1, 2, 3, 0 }; + assertEquals(true, ArrayUtils.contains(array, (byte) 0)); + assertEquals(true, ArrayUtils.contains(array, (byte) 1)); + assertEquals(true, ArrayUtils.contains(array, (byte) 2)); + assertEquals(true, ArrayUtils.contains(array, (byte) 3)); + assertEquals(false, ArrayUtils.contains(array, (byte) 99)); + } + + //----------------------------------------------------------------------- + public void testIndexOfDouble() { + double[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, (double) 0)); + array = new double[] { 0, 1, 2, 3, 0 }; + assertEquals(0, ArrayUtils.indexOf(array, (double) 0)); + assertEquals(1, ArrayUtils.indexOf(array, (double) 1)); + assertEquals(2, ArrayUtils.indexOf(array, (double) 2)); + assertEquals(3, ArrayUtils.indexOf(array, (double) 3)); + assertEquals(-1, ArrayUtils.indexOf(array, (double) 99)); + } + + public void testIndexOfDoubleWithStartIndex() { + double[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, (double) 0, 2)); + array = new double[] { 0, 1, 2, 3, 0 }; + assertEquals(4, ArrayUtils.indexOf(array, (double) 0, 2)); + assertEquals(-1, ArrayUtils.indexOf(array, (double) 1, 2)); + assertEquals(2, ArrayUtils.indexOf(array, (double) 2, 2)); + assertEquals(3, ArrayUtils.indexOf(array, (double) 3, 2)); + assertEquals(-1, ArrayUtils.indexOf(array, (double) 99, 0)); + assertEquals(-1, ArrayUtils.indexOf(array, (double) 0, 6)); + } + + public void testLastIndexOfDouble() { + double[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, (double) 0)); + array = new double[] { 0, 1, 2, 3, 0 }; + assertEquals(4, ArrayUtils.lastIndexOf(array, (double) 0)); + assertEquals(1, ArrayUtils.lastIndexOf(array, (double) 1)); + assertEquals(2, ArrayUtils.lastIndexOf(array, (double) 2)); + assertEquals(3, ArrayUtils.lastIndexOf(array, (double) 3)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, (double) 99)); + } + + public void testLastIndexOfDoubleWithStartIndex() { + double[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, (double) 0, 2)); + array = new double[] { 0, 1, 2, 3, 0 }; + assertEquals(0, ArrayUtils.lastIndexOf(array, (double) 0, 2)); + assertEquals(1, ArrayUtils.lastIndexOf(array, (double) 1, 2)); + assertEquals(2, ArrayUtils.lastIndexOf(array, (double) 2, 2)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, (double) 3, 2)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, (double) 99)); + assertEquals(4, ArrayUtils.lastIndexOf(array, (double) 0, 88)); + } + + public void testContainsDouble() { + double[] array = null; + assertEquals(false, ArrayUtils.contains(array, (double) 1)); + array = new double[] { 0, 1, 2, 3, 0 }; + assertEquals(true, ArrayUtils.contains(array, (double) 0)); + assertEquals(true, ArrayUtils.contains(array, (double) 1)); + assertEquals(true, ArrayUtils.contains(array, (double) 2)); + assertEquals(true, ArrayUtils.contains(array, (double) 3)); + assertEquals(false, ArrayUtils.contains(array, (double) 99)); + } + + //----------------------------------------------------------------------- + public void testIndexOfFloat() { + float[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, (float) 0)); + array = new float[] { 0, 1, 2, 3, 0 }; + assertEquals(0, ArrayUtils.indexOf(array, (float) 0)); + assertEquals(1, ArrayUtils.indexOf(array, (float) 1)); + assertEquals(2, ArrayUtils.indexOf(array, (float) 2)); + assertEquals(3, ArrayUtils.indexOf(array, (float) 3)); + assertEquals(-1, ArrayUtils.indexOf(array, (float) 99)); + } + + public void testIndexOfFloatWithStartIndex() { + float[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, (float) 0, 2)); + array = new float[] { 0, 1, 2, 3, 0 }; + assertEquals(4, ArrayUtils.indexOf(array, (float) 0, 2)); + assertEquals(-1, ArrayUtils.indexOf(array, (float) 1, 2)); + assertEquals(2, ArrayUtils.indexOf(array, (float) 2, 2)); + assertEquals(3, ArrayUtils.indexOf(array, (float) 3, 2)); + assertEquals(-1, ArrayUtils.indexOf(array, (float) 99, 0)); + assertEquals(-1, ArrayUtils.indexOf(array, (float) 0, 6)); + } + + public void testLastIndexOfFloat() { + float[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, (float) 0)); + array = new float[] { 0, 1, 2, 3, 0 }; + assertEquals(4, ArrayUtils.lastIndexOf(array, (float) 0)); + assertEquals(1, ArrayUtils.lastIndexOf(array, (float) 1)); + assertEquals(2, ArrayUtils.lastIndexOf(array, (float) 2)); + assertEquals(3, ArrayUtils.lastIndexOf(array, (float) 3)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, (float) 99)); + } + + public void testLastIndexOfFloatWithStartIndex() { + float[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, (float) 0, 2)); + array = new float[] { 0, 1, 2, 3, 0 }; + assertEquals(0, ArrayUtils.lastIndexOf(array, (float) 0, 2)); + assertEquals(1, ArrayUtils.lastIndexOf(array, (float) 1, 2)); + assertEquals(2, ArrayUtils.lastIndexOf(array, (float) 2, 2)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, (float) 3, 2)); + assertEquals(-1, ArrayUtils.lastIndexOf(array, (float) 99)); + assertEquals(4, ArrayUtils.lastIndexOf(array, (float) 0, 88)); + } + + public void testContainsFloat() { + float[] array = null; + assertEquals(false, ArrayUtils.contains(array, (float) 1)); + array = new float[] { 0, 1, 2, 3, 0 }; + assertEquals(true, ArrayUtils.contains(array, (float) 0)); + assertEquals(true, ArrayUtils.contains(array, (float) 1)); + assertEquals(true, ArrayUtils.contains(array, (float) 2)); + assertEquals(true, ArrayUtils.contains(array, (float) 3)); + assertEquals(false, ArrayUtils.contains(array, (float) 99)); + } + + //----------------------------------------------------------------------- + public void testIndexOfBoolean() { + boolean[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, true)); + array = new boolean[] { true, false, true }; + assertEquals(0, ArrayUtils.indexOf(array, true)); + assertEquals(1, ArrayUtils.indexOf(array, false)); + array = new boolean[] { true, true }; + assertEquals(-1, ArrayUtils.indexOf(array, false)); + } + + public void testIndexOfBooleanWithStartIndex() { + boolean[] array = null; + assertEquals(-1, ArrayUtils.indexOf(array, true, 2)); + array = new boolean[] { true, false, true }; + assertEquals(2, ArrayUtils.indexOf(array, true, 1)); + assertEquals(-1, ArrayUtils.indexOf(array, false, 2)); + array = new boolean[] { true, true }; + assertEquals(-1, ArrayUtils.indexOf(array, false, 0)); + } + + public void testLastIndexOfBoolean() { + boolean[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, true)); + array = new boolean[] { true, false, true }; + assertEquals(2, ArrayUtils.lastIndexOf(array, true)); + assertEquals(1, ArrayUtils.lastIndexOf(array, false)); + array = new boolean[] { true, true }; + assertEquals(-1, ArrayUtils.lastIndexOf(array, false)); + } + + public void testLastIndexOfBooleanWithStartIndex() { + boolean[] array = null; + assertEquals(-1, ArrayUtils.lastIndexOf(array, true, 2)); + array = new boolean[] { true, false, true }; + assertEquals(2, ArrayUtils.lastIndexOf(array, true, 2)); + assertEquals(0, ArrayUtils.lastIndexOf(array, true, 1)); + assertEquals(1, ArrayUtils.lastIndexOf(array, false, 2)); + array = new boolean[] { true, true }; + assertEquals(-1, ArrayUtils.lastIndexOf(array, false, 2)); + } + + public void testContainsBoolean() { + boolean[] array = null; + assertEquals(false, ArrayUtils.contains(array, true)); + array = new boolean[] { true, false, true }; + assertEquals(true, ArrayUtils.contains(array, true)); + assertEquals(true, ArrayUtils.contains(array, false)); + array = new boolean[] { true, true }; + assertEquals(true, ArrayUtils.contains(array, true)); + assertEquals(false, ArrayUtils.contains(array, false)); } // testToPrimitive/Object for boolean
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]