/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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.
 */

package org.apache.commons.collections4;

Operations on arrays, primitive arrays (like int[]) and primitive wrapper arrays (like Integer[]).

This class tries to handle null input gracefully. An exception will not be thrown for a null array input. However, an Object array that contains a null element may throw an exception. Each method documents its behaviour.

Package private, might move to an internal package if this needs to be public.

#ThreadSafe#

Since:4.2 (Copied from Apache Commons Lang.)
/** * <p> * Operations on arrays, primitive arrays (like {@code int[]}) and primitive wrapper arrays (like {@code Integer[]}). * </p> * <p> * This class tries to handle {@code null} input gracefully. An exception will not be thrown for a {@code null} array * input. However, an Object array that contains a {@code null} element may throw an exception. Each method documents * its behaviour. * </p> * <p> * Package private, might move to an internal package if this needs to be public. * </p> * <p> * #ThreadSafe# * </p> * * @since 4.2 (Copied from Apache Commons Lang.) * */
class ArrayUtils {
The index value when an element is not found in a list or array: -1. This value is returned by methods in this class and can also be used in comparisons with values returned by various method from List.
/** * The index value when an element is not found in a list or array: {@code -1}. This value is returned by methods in * this class and can also be used in comparisons with values returned by various method from * {@link java.util.List}. */
static final int INDEX_NOT_FOUND = -1;

Checks if the object is in the given array.

The method returns false if a null array is passed in.

Params:
  • array – the array to search through
  • objectToFind – the object to find
Returns:true if the array contains the object
/** * <p> * Checks if the object is in the given array. * </p> * * <p> * The method returns {@code false} if a {@code null} array is passed in. * </p> * * @param array * the array to search through * @param objectToFind * the object to find * @return {@code true} if the array contains the object */
static boolean contains(final Object[] array, final Object objectToFind) { return indexOf(array, objectToFind) != INDEX_NOT_FOUND; }

Finds the index of the given object in the array.

This method returns INDEX_NOT_FOUND (-1) for a null input array.

Params:
  • array – the array to search through for the object, may be null
  • objectToFind – the object to find, may be null
Returns:the index of the object within the array, INDEX_NOT_FOUND (-1) if not found or null array input
/** * <p> * Finds the index of the given object in the array. * </p> * * <p> * This method returns {@link #INDEX_NOT_FOUND} ({@code -1}) for a {@code null} input array. * </p> * * @param array * the array to search through for the object, may be {@code null} * @param objectToFind * the object to find, may be {@code null} * @return the index of the object within the array, {@link #INDEX_NOT_FOUND} ({@code -1}) if not found or * {@code null} array input */
static <T> int indexOf(final T[] array, final 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 INDEX_NOT_FOUND (-1) for a null input array.

A negative startIndex is treated as zero. A startIndex larger than the array length will return INDEX_NOT_FOUND (-1).

Params:
  • array – the array to search through for the object, may be null
  • objectToFind – the object to find, may be null
  • startIndex – the index to start searching at
Returns:the index of the object within the array starting at the index, INDEX_NOT_FOUND (-1) if not found or null array input
/** * <p> * Finds the index of the given object in the array starting at the given index. * </p> * * <p> * This method returns {@link #INDEX_NOT_FOUND} ({@code -1}) for a {@code null} input array. * </p> * * <p> * A negative startIndex is treated as zero. A startIndex larger than the array length will return * {@link #INDEX_NOT_FOUND} ({@code -1}). * </p> * * @param array * the array to search through for the object, may be {@code null} * @param objectToFind * the object to find, may be {@code null} * @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}) if * not found or {@code null} array input */
static int indexOf(final Object[] array, final Object objectToFind, int startIndex) { if (array == null) { return INDEX_NOT_FOUND; } 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 INDEX_NOT_FOUND; } }