Java tutorial
/* Copyright 2004 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.lang.reflect.Array; /** * Operations on arrays, primitive arrays (like <code>int[]</code>) and * primitive wrapper arrays (like <code>Integer[]</code>). * * This class tries to handle <code>null</code> input gracefully. * An exception will not be thrown for a <code>null</code> * array input. However, an Object array that contains a <code>null</code> * element may throw an exception. Each method documents its behaviour. * * @author Stephen Colebourne * @author Moritz Petersen * @author <a href="mailto:fredrik@westermarck.com">Fredrik Westermarck</a> * @author Nikolay Metchev * @author Matthew Hawthorne * @author Tim O'Brien * @author Pete Gieser * @author Gary Gregory * @author <a href="mailto:equinus100@hotmail.com">Ashwin S</a> * @author Maarten Coene * @since 2.0 * @version $Id: ArrayUtils.java 632503 2008-03-01 00:21:52Z ggregory $ */ public class Main { /** * Finds the index of the given object in the array. * * This method returns {@link #INDEX_NOT_FOUND} (<code>-1</code>) for a <code>null</code> input array. * * @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> * @return the index of the object within the array, * {@link #INDEX_NOT_FOUND} (<code>-1</code>) if not found or <code>null</code> array input */ public static int indexOf(Object[] array, Object objectToFind) { return indexOf(array, objectToFind, 0); } /** * Finds the index of the given object in the array starting at the given index. * * This method returns {@link #INDEX_NOT_FOUND} (<code>-1</code>) for a <code>null</code> input array. * * A negative startIndex is treated as zero. A startIndex larger than the array * length will return {@link #INDEX_NOT_FOUND} (<code>-1</code>). * * @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> * @param startIndex the index to start searching at * @return the index of the object within the array starting at the index, * {@link #INDEX_NOT_FOUND} (<code>-1</code>) if not found or <code>null</code> array input */ public static int indexOf(Object[] array, Object objectToFind, int startIndex) { if (array == null) { return -1; } if (startIndex < 0) { startIndex = 0; } if (objectToFind == null) { for (int i = startIndex; i < array.length; i++) { if (array[i] == null) { return i; } } } else { for (int i = startIndex; i < array.length; i++) { if (objectToFind.equals(array[i])) { return i; } } } return -1; } }