Cytoscape 2.6.2 (c) 2006,2007 ISB, MSKCC, UCSD

cytoscape.util.intr
Class LongLongHash

java.lang.Object
  extended by cytoscape.util.intr.LongLongHash
All Implemented Interfaces:
Serializable

public final class LongLongHash
extends Object
implements Serializable

An insert-only hashtable that has non-negative 64 bit integer keys and non-negative 64 bit integer values.

In the underlying implementation, this hashtable increases in size to adapt to key/value pairs being added (the underlying size of the hashtable is invisible to the programmer). In the underlying implementation, this hashtable never decreases in size. As a hashtable increases in size, it takes at most four times as much memory as it would take to store the hashtable's keys and values in a perfectly-sized array. Underlying size expansions are implemented such that the operation of expanding in size is amortized over the contstant time complexity needed to insert new elements.

An instance of this class is serializable; however, serialized instances of this class should not be stored in a persistent manner because the serialization implemented in this class makes no attempt at handling class versioning.

See Also:
Serialized Form

Constructor Summary
LongLongHash()
          Creates a new hashtable.
 
Method Summary
 void empty()
          Removes all key/value pairs from this hashtable.
 long get(long key)
          Returns the value bound to the specified key or -1 if no value is currently bound to the specified key.
 LongEnumerator keys()
          Returns an enumeration of keys in this hashtable, ordered arbitrarily.
 long put(long key, long value)
          Puts a new key/value pair into this hashtable, potentially overwriting an existing value whose key is the same as the one specified.
 int size()
          Returns the number of key/value pairs currently in this hashtable.
 LongEnumerator values()
          Returns an enumeration of values in this hashtable, ordered arbitrarily.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LongLongHash

public LongLongHash()
Creates a new hashtable.

Method Detail

empty

public final void empty()
Removes all key/value pairs from this hashtable. This operation has O(1) time complexity.


size

public final int size()
Returns the number of key/value pairs currently in this hashtable.


put

public final long put(long key,
                      long value)
Puts a new key/value pair into this hashtable, potentially overwriting an existing value whose key is the same as the one specified. Returns the old value associated with the specified key or -1 if no value is associated with specified key at the time of this call.

Insertions into the hashtable are performed in [amortized] time complexity O(1).

Throws:
IllegalArgumentException - if either key or value is negative.

get

public final long get(long key)
Returns the value bound to the specified key or -1 if no value is currently bound to the specified key.

Searches in this hashtable are performed in [amortized] time complexity O(1).

Throws:
IllegalArgumentException - if key is negative.

keys

public final LongEnumerator keys()
Returns an enumeration of keys in this hashtable, ordered arbitrarily.

The returned enumeration becomes invalid as soon as put(long, long) or empty() is called on this hashtable; calling methods on an invalid enumeration will cause undefined behavior in the enumerator. The returned enumerator has absolutely no effect on the underlying hashtable.

This method returns in constant time. The returned enumerator returns successive keys in [amortized] time complexity O(1).

It is possible to get the keys() and values() enumerations at the same time and iterate over them simultaneously; then, the ith element of the keys() enumeration is the key into the ith element of the values() enumeration.


values

public final LongEnumerator values()
Returns an enumeration of values in this hashtable, ordered arbitrarily.

The returned enumeration becomes invalid as soon as put(long, long) or empty() is called on this hashtable; calling methods on an invalid enumeration will cause undefined behavior in the enumerator. The returned enumerator has absolutely no effect on the underlying hashtable.

This method returns in constant time. The returned enumerator returns successive values in [amortized] time complexity O(1).

It is possible to get the keys() and values() enumerations at the same time and iterate over them simultaneously; then, the ith element of the keys() enumeration is the key into the ith element of the values() enumeration.


www.cytoscape.org