Here you can find the source of lastIndexOf(Object[] array, Object objectToFind)
public static int lastIndexOf(Object[] array, Object objectToFind)
//package com.java2s; //License from project: Apache License public class Main { public static final int INDEX_NOT_FOUND = -1; public static int lastIndexOf(Object[] array, Object objectToFind) { return lastIndexOf(array, objectToFind, Integer.MAX_VALUE); }/*w ww . j a va 2 s . c o m*/ public static int lastIndexOf(Object[] array, Object objectToFind, int startIndex) { if (array == null) { return INDEX_NOT_FOUND; } if (startIndex < 0) { return INDEX_NOT_FOUND; } else 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 INDEX_NOT_FOUND; } public static int lastIndexOf(long[] array, long valueToFind) { return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); } public static int lastIndexOf(long[] array, long valueToFind, int startIndex) { if (array == null) { 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; } public static int lastIndexOf(int[] array, int valueToFind) { return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); } public static int lastIndexOf(int[] array, int valueToFind, int startIndex) { if (array == null) { 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; } public static int lastIndexOf(short[] array, short valueToFind) { return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); } public static int lastIndexOf(short[] array, short valueToFind, int startIndex) { if (array == null) { 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; } public static int lastIndexOf(char[] array, char valueToFind) { return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); } public static int lastIndexOf(char[] array, char valueToFind, int startIndex) { if (array == null) { 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; } public static int lastIndexOf(byte[] array, byte valueToFind) { return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); } public static int lastIndexOf(byte[] array, byte valueToFind, int startIndex) { if (array == null) { 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; } public static int lastIndexOf(double[] array, double valueToFind) { return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); } public static int lastIndexOf(double[] array, double valueToFind, double tolerance) { return lastIndexOf(array, valueToFind, Integer.MAX_VALUE, tolerance); } public static int lastIndexOf(double[] array, double 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; } public static int lastIndexOf(double[] array, double valueToFind, int startIndex, double tolerance) { if (isEmpty(array)) { return INDEX_NOT_FOUND; } if (startIndex < 0) { return INDEX_NOT_FOUND; } else 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 INDEX_NOT_FOUND; } public static int lastIndexOf(float[] array, float valueToFind) { return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); } public static int lastIndexOf(float[] array, float 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; } public static int lastIndexOf(boolean[] array, boolean valueToFind) { return lastIndexOf(array, valueToFind, Integer.MAX_VALUE); } 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; } public static boolean isEmpty(Object[] array) { return array == null || array.length == 0; } public static boolean isEmpty(long[] array) { return array == null || array.length == 0; } public static boolean isEmpty(int[] array) { return array == null || array.length == 0; } public static boolean isEmpty(short[] array) { return array == null || array.length == 0; } public static boolean isEmpty(char[] array) { return array == null || array.length == 0; } public static boolean isEmpty(byte[] array) { return array == null || array.length == 0; } public static boolean isEmpty(double[] array) { return array == null || array.length == 0; } public static boolean isEmpty(float[] array) { return array == null || array.length == 0; } public static boolean isEmpty(boolean[] array) { return array == null || array.length == 0; } }