Java Array Last Index Of lastIndexOfNoCheck(byte value, byte[] array, int index, int length)

Here you can find the source of lastIndexOfNoCheck(byte value, byte[] array, int index, int length)

Description

last Index Of No Check

License

Apache License

Declaration

public static int lastIndexOfNoCheck(byte value, byte[] array, int index, int length) 

Method Source Code

//package com.java2s;
/**   //from   w  w w  . j a va 2 s . com
 * Copyright 2011 The Buzz Media, LLC
 * 
 * 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.
 */

public class Main {
    public static final int INVALID_INDEX = -1;

    public static int lastIndexOfNoCheck(byte value, byte[] array, int index, int length) {
        for (int i = (index + length - 1); i >= index; i--) {
            if (array[i] == value)
                return i;
        }

        return INVALID_INDEX;
    }

    public static int lastIndexOfNoCheck(byte[] values, byte[] array, int index, int length) {
        // pre-define once
        int j;

        // Loop until it isn't possible for us to match values
        for (int i = (index + length - 1), endIndex = (index + values.length - 1); i >= endIndex; i--) {
            // Increment j for as many matches as we find
            for (j = 0; j < values.length && array[i - j] == values[values.length - 1 - j]; j++)
                ;

            // If we incremented j all the way, we matched all of values
            if (j == values.length)
                return i - j + 1;
            else
                i -= j;
        }

        return INVALID_INDEX;
    }

    public static int lastIndexOfNoCheck(char value, char[] array, int index, int length) {
        for (int i = (index + length - 1); i >= index; i--) {
            if (array[i] == value)
                return i;
        }

        return INVALID_INDEX;
    }

    public static int lastIndexOfNoCheck(char[] values, char[] array, int index, int length) {
        // pre-define once
        int j;

        // Loop until it isn't possible for us to match values
        for (int i = (index + length - 1), endIndex = (index + values.length - 1); i >= endIndex; i--) {
            // Increment j for as many matches as we find
            for (j = 0; j < values.length && array[i - j] == values[values.length - 1 - j]; j++)
                ;

            // If we incremented j all the way, we matched all of values
            if (j == values.length)
                return i - j + 1;
            else
                i -= j;
        }

        return INVALID_INDEX;
    }
}

Related

  1. lastIndexOfAny(String string, char[] anyOf)
  2. lastIndexOfAnyNoCheck(byte[] values, byte[] array, int index, int length)
  3. lastIndexOfArray(int r[], int rpos, int rend, char d[], int dpos)
  4. lastIndexOfChars(String src, char[] chars, int startIndex, int endIndex)
  5. lastIndexOfInsensitive(String o, String[] vals)
  6. lastIndexOfNot(byte[] array, int obj)
  7. lastIndexOfRef(T[] ary, int off, int len, T value)
  8. lastIndexOfTrim(byte[] raw, char ch, int pos)