public class SymbolTable
extends java.lang.Object
addSymbol
will always return the same string
reference.
The symbol table performs the same task as String.intern()
with the following differences:
SymbolHash
Modifier and Type | Class and Description |
---|---|
protected static class |
SymbolTable.Entry
This class is a symbol table entry.
|
Modifier and Type | Field and Description |
---|---|
protected SymbolTable.Entry[] |
fBuckets
Buckets.
|
protected int |
fTableSize |
protected static int |
TABLE_SIZE
Default table size.
|
Constructor and Description |
---|
SymbolTable()
Constructs a symbol table with a default number of buckets.
|
SymbolTable(int tableSize)
Constructs a symbol table with a specified number of buckets.
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
addSymbol(char[] buffer,
int offset,
int length)
Adds the specified symbol to the symbol table and returns a
reference to the unique symbol.
|
java.lang.String |
addSymbol(java.lang.String symbol)
Adds the specified symbol to the symbol table and returns a
reference to the unique symbol.
|
boolean |
containsSymbol(char[] buffer,
int offset,
int length)
Returns true if the symbol table already contains the specified
symbol.
|
boolean |
containsSymbol(java.lang.String symbol)
Returns true if the symbol table already contains the specified
symbol.
|
int |
hash(char[] buffer,
int offset,
int length)
Returns a hashcode value for the specified symbol information.
|
int |
hash(java.lang.String symbol)
Returns a hashcode value for the specified symbol.
|
protected static final int TABLE_SIZE
protected SymbolTable.Entry[] fBuckets
protected int fTableSize
public SymbolTable()
public SymbolTable(int tableSize)
public java.lang.String addSymbol(java.lang.String symbol)
symbol
- The new symbol.public java.lang.String addSymbol(char[] buffer, int offset, int length)
buffer
- The buffer containing the new symbol.offset
- The offset into the buffer of the new symbol.length
- The length of the new symbol in the buffer.public int hash(java.lang.String symbol)
hash(char[],int,int)
method when called
with the character array that comprises the symbol string.symbol
- The symbol to hash.public int hash(char[] buffer, int offset, int length)
hash(String)
method when called
with the string object created from the symbol information.buffer
- The character buffer containing the symbol.offset
- The offset into the character buffer of the start
of the symbol.length
- The length of the symbol.public boolean containsSymbol(java.lang.String symbol)
symbol
- The symbol to look for.public boolean containsSymbol(char[] buffer, int offset, int length)
buffer
- The buffer containing the symbol to look for.offset
- The offset into the buffer.length
- The length of the symbol in the buffer.