public class SoftReferenceSymbolTable extends SymbolTable
SymbolTable| Modifier and Type | Class and Description |
|---|---|
protected static class |
SoftReferenceSymbolTable.SREntry
This class is a symbol table entry.
|
protected static class |
SoftReferenceSymbolTable.SREntryData |
SymbolTable.Entry| Modifier and Type | Field and Description |
|---|---|
protected SoftReferenceSymbolTable.SREntry[] |
fBuckets |
fCollisionThreshold, fCount, fHashMultipliers, fLoadFactor, fTableSize, fThreshold, MAX_HASH_COLLISIONS, MULTIPLIERS_MASK, MULTIPLIERS_SIZE, TABLE_SIZE| Constructor and Description |
|---|
SoftReferenceSymbolTable()
Constructs a new, empty SymbolTable with a default initial capacity (101)
and load factor, which is 0.75.
|
SoftReferenceSymbolTable(int initialCapacity)
Constructs a new, empty SymbolTable with the specified initial capacity
and default load factor, which is 0.75.
|
SoftReferenceSymbolTable(int initialCapacity,
float loadFactor)
Constructs a new, empty SymbolTable with the specified initial
capacity and the specified load factor.
|
| 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.
|
protected void |
compact()
Reduces the capacity of and internally reorganizes this
SymbolTable, in order to accommodate and access its entries in
a more memory efficient way.
|
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.
|
protected void |
rebalance()
Randomly selects a new hash function and reorganizes this SymbolTable
in order to more evenly distribute its entries across the table.
|
protected void |
rehash()
Increases the capacity of and internally reorganizes this
SymbolTable, in order to accommodate and access its entries more
efficiently.
|
hash, hashprotected SoftReferenceSymbolTable.SREntry[] fBuckets
public SoftReferenceSymbolTable(int initialCapacity,
float loadFactor)
initialCapacity - the initial capacity of the SymbolTable.loadFactor - the load factor of the SymbolTable.java.lang.IllegalArgumentException - if the initial capacity is less
than zero, or if the load factor is nonpositive.public SoftReferenceSymbolTable(int initialCapacity)
initialCapacity - the initial capacity of the hashtable.java.lang.IllegalArgumentException - if the initial capacity is less
than zero.public SoftReferenceSymbolTable()
public java.lang.String addSymbol(java.lang.String symbol)
addSymbol in class SymbolTablesymbol - The new symbol.public java.lang.String addSymbol(char[] buffer,
int offset,
int length)
addSymbol in class SymbolTablebuffer - 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.protected void rehash()
rehash in class SymbolTableprotected void compact()
protected void rebalance()
rebalance in class SymbolTablepublic boolean containsSymbol(java.lang.String symbol)
containsSymbol in class SymbolTablesymbol - The symbol to look for.public boolean containsSymbol(char[] buffer,
int offset,
int length)
containsSymbol in class SymbolTablebuffer - The buffer containing the symbol to look for.offset - The offset into the buffer.length - The length of the symbol in the buffer.Copyright © 1999-2022 The Apache Software Foundation. All Rights Reserved.