java.lang.Object
org.glassfish.rmic.iiop.StaticStringsHash
StaticStringsHash takes an array of constant strings and
uses several different hash methods to try to find the
'best' one for that set. The set of methods is currently
fixed, but with a little work could be made extensible thru
subclassing.
The current set of methods is:
- length() - works well when all strings are different length.
- charAt(n) - works well when one offset into all strings is different.
- hashCode() - works well with larger arrays.
getKey(String) method can be used to use the selected hash
method to produce a key. The method string will contain
"length()", "charAt(n)", or "hashCode()", and is intended for use by
code generators.
The keys array will contain the full set of unique keys.
The buckets array will contain a set of arrays, one for
each key in the keys, where buckets[x][y]
is an index into the strings array.
- Author:
- Bryan Atsatt
-
Field Summary
FieldsModifier and TypeFieldDescriptionint[][]Buckets for each key, where buckets[x][y] is an index into the strings[] array.int[]Unique hash keysThe method to invoke on String to produce the hash keyString[]The set of strings upon which the hash info is created -
Constructor Summary
Constructors -
Method Summary
-
Field Details
-
strings
The set of strings upon which the hash info is created -
keys
public int[] keysUnique hash keys -
buckets
public int[][] bucketsBuckets for each key, where buckets[x][y] is an index into the strings[] array. -
method
The method to invoke on String to produce the hash key
-
-
Constructor Details
-
StaticStringsHash
Constructor- Parameters:
strings- the set of strings upon which to find an optimal hash method. Must not contain duplicates.
-
-
Method Details
-
getKey
Get a key for the given string using the selected hash method.- Parameters:
str- the string to return a key for.- Returns:
- the key.
-
main
Print an optimized 'contains' method for the argument strings
-