Xerces2 Implementation: Class SymbolHash

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.xerces.util
Class SymbolHash

    java.lang.Object
      |
      +--org.apache.xerces.util.SymbolHash

public class SymbolHash
extends java.lang.Object

This class is an unsynchronized hash table primary used for String to Object mapping.

The hash code uses the same algorithm as SymbolTable class.

Version:
  $Id: SymbolHash.java 1357381 2012-07-04 19:56:10Z mrglavas $
Author:
  Elena Litani

Inner Class Summary
`protected static class` | `SymbolHash.Entry` This class is a key table entry.

Field Summary
`protected SymbolHash.Entry[]` | `fBuckets` Buckets.
`protected int[]` | `fHashMultipliers` Array of randomly selected hash function multipliers or `null` if the default String.hashCode() function should be used.
`protected int` | `fNum` Number of elements.
`protected int` | `fTableSize` Actual table size
`protected static int` | `MAX_HASH_COLLISIONS` Maximum hash collisions per bucket.
`protected static int` | `MULTIPLIERS_MASK`
`protected static int` | `MULTIPLIERS_SIZE`
`protected static int` | `TABLE_SIZE` Default table size.

Constructor Summary
`SymbolHash()` Constructs a key table with the default size.
`SymbolHash(int size)` Constructs a key table with a given size.

Method Summary
`void` | `clear()` Remove all key/value association.
`java.lang.Object` | `get(java.lang.Object key)` Get the value associated with the given key.
`java.lang.Object[]` | `getEntries()` Return key/value pairs of all entries in the map
`int` | `getLength()` Get the number of key/value pairs stored in this table.
`int` | `getValues(java.lang.Object[] elements, int from)` Add all values to the given array.
`protected int` | `hash(java.lang.Object key)` Returns a hashcode value for the specified key.
`SymbolHash` | `makeClone()` Make a clone of this object.
`void` | `put(java.lang.Object key, java.lang.Object value)` Adds the key/value mapping to the key table.
`protected void` | `rebalance()` Randomly selects a new hash function and reorganizes this SymbolHash in order to more evenly distribute its entries across the table.
`protected void` | `rehash()` Increases the capacity of and internally reorganizes this SymbolHash, in order to accommodate and access its entries more efficiently.
`protected SymbolHash.Entry` | `search(java.lang.Object key, int bucket)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### TABLE_SIZE

    protected static final int TABLE_SIZE

  Default table size.

### MAX_HASH_COLLISIONS

    protected static final int MAX_HASH_COLLISIONS

  Maximum hash collisions per bucket.

### MULTIPLIERS_SIZE

    protected static final int MULTIPLIERS_SIZE

### MULTIPLIERS_MASK

    protected static final int MULTIPLIERS_MASK

### fTableSize

    protected int fTableSize

  Actual table size

### fBuckets

    protected SymbolHash.Entry[] fBuckets

  Buckets.

### fNum

    protected int fNum

  Number of elements.

### fHashMultipliers

    protected int[] fHashMultipliers

  Array of randomly selected hash function multipliers or `null` if the default String.hashCode() function should be used.

Constructor Detail

### SymbolHash

    public SymbolHash()

  Constructs a key table with the default size.

### SymbolHash

    public SymbolHash(int size)

  Constructs a key table with a given size.
  Parameters:
    `size` - the size of the key table.

Method Detail

### put

    public void put(java.lang.Object key,
                    java.lang.Object value)

  Adds the key/value mapping to the key table. If the key already exists, the previous value associated with this key is overwritten by the new value.
  Parameters:
    `key` -
    `value` -

### get

    public java.lang.Object get(java.lang.Object key)

  Get the value associated with the given key.
  Parameters:
    `key` -
  Returns:
    the value associated with the given key.

### getLength

    public int getLength()

  Get the number of key/value pairs stored in this table.
  Returns:
    the number of key/value pairs stored in this table.

### getValues

    public int getValues(java.lang.Object[] elements,
                         int from)

  Add all values to the given array. The array must have enough entry.
  Parameters:
    `elements` - the array to store the elements
    `from` - where to start store element in the array
  Returns:
    number of elements copied to the array

### getEntries

    public java.lang.Object[] getEntries()

  Return key/value pairs of all entries in the map

### makeClone

    public SymbolHash makeClone()

  Make a clone of this object.

### clear

    public void clear()

  Remove all key/value association. This tries to save a bit of GC'ing by at least keeping the fBuckets array around.

### search

    protected SymbolHash.Entry search(java.lang.Object key,
                                      int bucket)

### hash

    protected int hash(java.lang.Object key)

  Returns a hashcode value for the specified key.
  Parameters:
    `key` - The key to hash.

### rehash

    protected void rehash()

  Increases the capacity of and internally reorganizes this SymbolHash, in order to accommodate and access its entries more efficiently. This method is called automatically when the number of keys in the SymbolHash exceeds its number of buckets.

### rebalance

    protected void rebalance()

  Randomly selects a new hash function and reorganizes this SymbolHash in order to more evenly distribute its entries across the table. This method is called automatically when the number keys in one of the SymbolHash's buckets exceeds MAX_HASH_COLLISIONS.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 1999-2018 The Apache Software Foundation. All Rights Reserved.