Java tutorial
//package com.java2s; public class Main { /** * Basic find for small arrays of Object. */ public static int find(Object[] array, Object object) { for (int i = 0; i < array.length; i++) { if (array[i] == object) { // hadles both nulls return i; } if (object != null && object.equals(array[i])) { return i; } } return -1; } /** * Basic find for small arrays of int. */ public static int find(int[] array, int value) { for (int i = 0; i < array.length; i++) { if (array[i] == value) { return i; } } return -1; } public static int find(short[] array, int value) { for (int i = 0; i < array.length; i++) { if (array[i] == value) { return i; } } return -1; } public static int find(short[] array, int value, int offset, int count) { for (int i = offset; i < offset + count; i++) { if (array[i] == value) { return i; } } return -1; } /** * Returns the index of the first occurence of arrb in arra. Or -1 if not found. */ public static int find(byte[] arra, int start, int limit, byte[] arrb) { int k = start; limit = limit - arrb.length + 1; int value = arrb[0]; for (; k < limit; k++) { if (arra[k] == value) { if (arrb.length == 1) { return k; } if (containsAt(arra, k, arrb)) { return k; } } } return -1; } /** * Returns the index of b or c in arra. Or -1 if not found. */ public static int find(byte[] arra, int start, int limit, int b, int c) { int k = 0; for (; k < limit; k++) { if (arra[k] == b || arra[k] == c) { return k; } } return -1; } /** * Returns true if arra from position start contains all elements of arrb * in sequential order. */ public static boolean containsAt(byte[] arra, int start, byte[] arrb) { return countSameElements(arra, start, arrb) == arrb.length; } /** * Returns true if arra from position start contains all elements of arrb * in sequential order. */ public static boolean containsAt(char[] arra, int start, char[] arrb) { return countSameElements(arra, start, arrb) == arrb.length; } /** * Returns the count of elements in arra from position start that are * sequentially equal to the elements of arrb. */ public static int countSameElements(byte[] arra, int start, byte[] arrb) { int k = 0; int limit = arra.length - start; if (limit > arrb.length) { limit = arrb.length; } for (int i = 0; i < limit; i++) { if (arra[i + start] == arrb[i]) { k++; } else { break; } } return k; } /** * Returns the count of elements in arra from position start that are * sequentially equal to the elements of arrb. */ public static int countSameElements(char[] arra, int start, char[] arrb) { int k = 0; int limit = arra.length - start; if (limit > arrb.length) { limit = arrb.length; } for (int i = 0; i < limit; i++) { if (arra[i + start] == arrb[i]) { k++; } else { break; } } return k; } }