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, hash
protected 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 SymbolTable
symbol
- The new symbol.public java.lang.String addSymbol(char[] buffer, int offset, int length)
addSymbol
in class SymbolTable
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.protected void rehash()
rehash
in class SymbolTable
protected void compact()
protected void rebalance()
rebalance
in class SymbolTable
public boolean containsSymbol(java.lang.String symbol)
containsSymbol
in class SymbolTable
symbol
- The symbol to look for.public boolean containsSymbol(char[] buffer, int offset, int length)
containsSymbol
in class SymbolTable
buffer
- 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.