Get the element index or last index among a boolean type array : Array Sort Search « Collections Data Structure « Java






Get the element index or last index among a boolean type array

       
/*   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;


/**
 * <p>Operations on arrays, primitive arrays (like <code>int[]</code>) and
 * primitive wrapper arrays (like <code>Integer[]</code>).</p>
 * 
 * <p>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.</p>
 *
 * @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 {
  /**
   * The index value when an element is not found in a list or array: <code>-1</code>.
   * 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}.
   */
  public static final int INDEX_NOT_FOUND = -1;

  // boolean IndexOf
  //-----------------------------------------------------------------------
  /**
   * <p>Finds the index of the given value in the array.</p>
   *
   * <p>This method returns {@link #INDEX_NOT_FOUND} (<code>-1</code>) for a <code>null</code> input array.</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,
   *  {@link #INDEX_NOT_FOUND} (<code>-1</code>) if not found or <code>null</code> array input
   */
  public static int indexOf(boolean[] array, boolean valueToFind) {
      return indexOf(array, valueToFind, 0);
  }

  /**
   * <p>Finds the index of the given value in the array starting at the given index.</p>
   *
   * <p>This method returns {@link #INDEX_NOT_FOUND} (<code>-1</code>) for a <code>null</code> 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</code>).</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,
   *  {@link #INDEX_NOT_FOUND} (<code>-1</code>) if not found or <code>null</code>
   *  array input
   */
  public static int indexOf(boolean[] array, boolean valueToFind, int startIndex) {
      if (isEmpty(array)) {
          return INDEX_NOT_FOUND;
      }
      if (startIndex < 0) {
          startIndex = 0;
      }
      for (int i = startIndex; i < array.length; i++) {
          if (valueToFind == array[i]) {
              return i;
          }
      }
      return INDEX_NOT_FOUND;
  }

  /**
   * <p>Finds the last index of the given value within the array.</p>
   *
   * <p>This method returns {@link #INDEX_NOT_FOUND} (<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 within the array,
   *  {@link #INDEX_NOT_FOUND} (<code>-1</code>) if not found or <code>null</code> array input
   */
  public static int lastIndexOf(boolean[] array, boolean valueToFind) {
      return lastIndexOf(array, valueToFind, Integer.MAX_VALUE);
  }

  /**
   * <p>Finds the last index of the given value in the array starting at the given index.</p>
   *
   * <p>This method returns {@link #INDEX_NOT_FOUND} (<code>-1</code>) for a <code>null</code> input array.</p>
   *
   * <p>A negative startIndex will return {@link #INDEX_NOT_FOUND} (<code>-1</code>). 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,
   *  {@link #INDEX_NOT_FOUND} (<code>-1</code>) if not found or <code>null</code> array input
   */
  public static int lastIndexOf(boolean[] array, boolean valueToFind, int startIndex) {
      if (isEmpty(array)) {
          return INDEX_NOT_FOUND;
      }
      if (startIndex < 0) {
          return INDEX_NOT_FOUND;
      } else if (startIndex >= array.length) {
          startIndex = array.length - 1;
      }
      for (int i = startIndex; i >= 0; i--) {
          if (valueToFind == array[i]) {
              return i;
          }
      }
      return INDEX_NOT_FOUND;
  }

  /**
   * <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(boolean[] array, boolean valueToFind) {
      return indexOf(array, valueToFind) != INDEX_NOT_FOUND;
  }


  /**
   * <p>Checks if an array of primitive doubles is empty or <code>null</code>.</p>
   *
   * @param array  the array to test
   * @return <code>true</code> if the array is empty or <code>null</code>
   * @since 2.1
   */
  public static boolean isEmpty(boolean[] array) {
      if (array == null || array.length == 0) {
          return true;
      }
      return false;
  }
}

   
    
    
    
    
    
    
  








Related examples in the same category

1.Quicksort implementation for sorting arrays
2.Search for a specified value of an array
3.Inserting an Element into a Sorted Array
4.How to sort an array
5.Sorting an Array in Descending (Reverse) Order
6.Sort in reverse order
7.Sorting an Array
8.Finding an Element in a Sorted Array
9.Sort array values in descending order
10.Find items in an array
11.Reverses the order of the given object array.
12.Reverses the order of the given long type value array.
13.Reverses the order of the given int type value array.
14.Reverses the order of the given short type value array.
15.Reverses the order of the given char type value array.
16.Reverses the order of the given byte type array.
17.Reverses the order of the given double value type array.
18.Reverses the order of the given float type value array.
19.Reverses the order of the given boolean type value array.
20.Produces a new array containing the elements between the start and end indices.
21.Produces a new long array containing the elements between the start and end indices.
22.Produces a new int array containing the elements between the start and end indices.
23.Produces a new short array containing the elements between the start and end indices.
24.Produces a new char array containing the elements between the start and end indices.
25.Produces a new byte array containing the elements between the start and end indices.
26.Produces a new double array containing the elements between the start and end indices.
27.Produces a new float array containing the elements between the start and end indices.
28.Produces a new boolean array containing the elements between the start and end indices.
29.Get index of long type array
30.Get the index and last index of an int type value array
31.Get the index and last index of a short type value array
32.Get the index and last index of a char type value array
33.Get the index and last index of byte type array
34.Get the index and last index of a double type array
35.Get the element index and last index in a float type value array
36.Finds the index of the given object in the array starting at the given index.
37.Finds the index of the given object in the array.
38.Returns the index in the source array where the first occurrence of the specified byte pattern is found
39.Returns the index in the source array where the first occurrence of the specified text (a String, converted to a byte array) is found
40.Returns the index in the source array where the last occurrence of the specified byte pattern is found
41.Returns the index in the source array where the last occurrence of the specified text (a String, converted to a byte array) is found
42.Returns the maximum value in a byte-type array.
43.Returns the maximum value in a double-type array.
44.Returns the maximum value in a float-type array.
45.Returns the maximum value in a long-value array.
46.Returns the maximum value in a short-type array.
47.Returns the maximum value in an int-type array.
48.Returns the minimum value in a double-type array.
49.Returns the minimum value in a float-value array.
50.Returns the minimum value in a short-type array.
51.Returns the minimum value in an array.
52.Returns the minimum value in an int-type array.
53.Returns the minimum value in an short-type array.
54.Search for an object in an array.
55.Finds the last index of the given object in the array starting at the given index.
56.Finds the last index of the given object within the array.
57.If array contains given element
58.Sort array utilities
59.Check if object 1 contains object 2
60.Returns the number of times a value occurs in a given array
61.Get the index of an array element
62.Sorts parts of the given array with the quicksort algorithm using the given comparator.
63.Return true if the array contains the element.
64.Searches the specified array of doubles for the specified value using the binary search algorithm.
65.Calculate the minimum and maximum values out of a list of doubles
66.Find the index of the value nearest to the key.