net.sf.mmm.util.text.base
Class FastStringHasher

java.lang.Object
  extended by net.sf.mmm.util.text.base.AbstractStringHasher
      extended by net.sf.mmm.util.text.base.FastStringHasher
All Implemented Interfaces:
StringHasher

public class FastStringHasher
extends AbstractStringHasher

This is a fast implementation of StringHasher.

Since:
2.0.0
Author:
Joerg Hohwiller (hohwille at users.sourceforge.net)

Field Summary
private static int HASH_FACTOR
          The hash-factor - should be prime (however Bernstein uses 33).
 
Constructor Summary
FastStringHasher()
          The constructor.
 
Method Summary
 int getHashCode(char[] string, int start, int end)
          This method gets the hash-code for the specified subsequence of the given string.
 int getHashCode(CharSequence string, int start, int end)
          This method gets the hash-code for the specified subsequence of the given string.
 int[] getHashCodes(char[] string, int length, int stringStart, int stringEnd)
          This method gets the hash-codes for all subsequence of string from stringStart (inclusive) until stringEnd (exclusive) that have the given length.
 
Methods inherited from class net.sf.mmm.util.text.base.AbstractStringHasher
getHashCode, getHashCodes, getHashCodes, getHashCodes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HASH_FACTOR

private static final int HASH_FACTOR
The hash-factor - should be prime (however Bernstein uses 33).

See Also:
Constant Field Values
Constructor Detail

FastStringHasher

public FastStringHasher()
The constructor.

Method Detail

getHashCode

public int getHashCode(char[] string,
                       int start,
                       int end)
This method gets the hash-code for the specified subsequence of the given string.

Parameters:
string - is the char-array containing the substring to hash.
start - is the index of the first character to include into the hash.
end - is the index one before the last character to include into the hash.
Returns:
the according hash-code.
See Also:
Object.hashCode()

getHashCode

public int getHashCode(CharSequence string,
                       int start,
                       int end)
This method gets the hash-code for the specified subsequence of the given string.

Specified by:
getHashCode in interface StringHasher
Overrides:
getHashCode in class AbstractStringHasher
Parameters:
string - is the CharSequence containing the subsequence to hash.
start - is the index of the first character to include into the hash.
end - is the index one before the last character to include into the hash.
Returns:
the according hash-code.
See Also:
Object.hashCode()

getHashCodes

public int[] getHashCodes(char[] string,
                          int length,
                          int stringStart,
                          int stringEnd)
This method gets the hash-codes for all subsequence of string from stringStart (inclusive) until stringEnd (exclusive) that have the given length.
The implementation of this method needs to behave functionally equivalent to this code (but should be more efficient):
 int size = stringEnd - stringStart - length + 1;
 if (size <= 0) {
   return new int[0];
 }
 int[] result = new int[size];
 for (int i = 0; i < size; i++) {
   result[i] = getHashCode(string, i, i + length);
 }
 return result;
 

Specified by:
getHashCodes in interface StringHasher
Overrides:
getHashCodes in class AbstractStringHasher
Parameters:
string - is the string as char-array.
length - is the length of the sub-sequences of string to hash.
stringStart - is the index where to start in string.
stringEnd - is the index where to stop in string.
Returns:
the requested hash-codes. An empty array if the length of string is less than the given length.


Copyright © 2001-2010 mmm-Team. All Rights Reserved.