Here you can find the source of lastIndexOf(boolean[] array, boolean valueToFind)
public static int lastIndexOf(boolean[] array, boolean valueToFind)
//package com.java2s; public class Main { public static int lastIndexOf(boolean[] array, boolean valueToFind) { return lastIndexOf(array, valueToFind, 2147483647); }//from w w w . j av a 2 s . c o m public static int lastIndexOf(boolean[] array, boolean valueToFind, int startIndex) { if (array == null || array.length == 0) { return -1; } if (startIndex < 0) return -1; if (startIndex >= array.length) { startIndex = array.length - 1; } for (int i = startIndex; i >= 0; i--) { if (valueToFind == array[i]) { return i; } } return -1; } public static int lastIndexOf(byte[] array, byte valueToFind) { return lastIndexOf(array, valueToFind, 2147483647); } public static int lastIndexOf(byte[] array, byte valueToFind, int startIndex) { if (array == null) { return -1; } if (startIndex < 0) return -1; if (startIndex >= array.length) { startIndex = array.length - 1; } for (int i = startIndex; i >= 0; i--) { if (valueToFind == array[i]) { return i; } } return -1; } public static int lastIndexOf(char[] array, char valueToFind) { return lastIndexOf(array, valueToFind, 2147483647); } public static int lastIndexOf(char[] array, char valueToFind, int startIndex) { if (array == null) { return -1; } if (startIndex < 0) return -1; if (startIndex >= array.length) { startIndex = array.length - 1; } for (int i = startIndex; i >= 0; i--) { if (valueToFind == array[i]) { return i; } } return -1; } public static int lastIndexOf(double[] array, double valueToFind) { return lastIndexOf(array, valueToFind, 2147483647); } public static int lastIndexOf(double[] array, double valueToFind, double tolerance) { return lastIndexOf(array, valueToFind, 2147483647, tolerance); } public static int lastIndexOf(double[] array, double valueToFind, int startIndex) { if (array == null || array.length == 0) { return -1; } if (startIndex < 0) return -1; if (startIndex >= array.length) { startIndex = array.length - 1; } for (int i = startIndex; i >= 0; i--) { if (valueToFind == array[i]) { return i; } } return -1; } public static int lastIndexOf(double[] array, double valueToFind, int startIndex, double tolerance) { if (array == null || array.length == 0) { return -1; } if (startIndex < 0) return -1; if (startIndex >= array.length) { startIndex = array.length - 1; } double min = valueToFind - tolerance; double max = valueToFind + tolerance; for (int i = startIndex; i >= 0; i--) { if ((array[i] >= min) && (array[i] <= max)) { return i; } } return -1; } public static int lastIndexOf(float[] array, float valueToFind) { return lastIndexOf(array, valueToFind, 2147483647); } public static int lastIndexOf(float[] array, float valueToFind, int startIndex) { if (array == null || array.length == 0) { return -1; } if (startIndex < 0) return -1; if (startIndex >= array.length) { startIndex = array.length - 1; } for (int i = startIndex; i >= 0; i--) { if (valueToFind == array[i]) { return i; } } return -1; } public static int lastIndexOf(int[] array, int valueToFind) { return lastIndexOf(array, valueToFind, 2147483647); } public static int lastIndexOf(int[] array, int valueToFind, int startIndex) { if (array == null) { return -1; } if (startIndex < 0) return -1; if (startIndex >= array.length) { startIndex = array.length - 1; } for (int i = startIndex; i >= 0; i--) { if (valueToFind == array[i]) { return i; } } return -1; } public static int lastIndexOf(long[] array, long valueToFind) { return lastIndexOf(array, valueToFind, 2147483647); } public static int lastIndexOf(long[] array, long valueToFind, int startIndex) { if (array == null) { return -1; } if (startIndex < 0) return -1; if (startIndex >= array.length) { startIndex = array.length - 1; } for (int i = startIndex; i >= 0; i--) { if (valueToFind == array[i]) { return i; } } return -1; } public static int lastIndexOf(Object[] array, Object objectToFind) { return lastIndexOf(array, objectToFind, 2147483647); } public static int lastIndexOf(Object[] array, Object objectToFind, int startIndex) { if (array == null) { return -1; } if (startIndex < 0) return -1; if (startIndex >= array.length) { startIndex = array.length - 1; } if (objectToFind == null) { for (int i = startIndex; i >= 0; i--) { if (array[i] == null) return i; } } else if (array.getClass().getComponentType().isInstance(objectToFind)) { for (int i = startIndex; i >= 0; i--) { if (objectToFind.equals(array[i])) { return i; } } } return -1; } public static int lastIndexOf(short[] array, short valueToFind) { return lastIndexOf(array, valueToFind, 2147483647); } public static int lastIndexOf(short[] array, short valueToFind, int startIndex) { if (array == null) { return -1; } if (startIndex < 0) return -1; if (startIndex >= array.length) { startIndex = array.length - 1; } for (int i = startIndex; i >= 0; i--) { if (valueToFind == array[i]) { return i; } } return -1; } }