Copyright Tony Morris 2008

This software is released under an open source BSD licence.

fj.data
Class HashMap<K,V>

java.lang.Object
  extended by fj.data.HashMap<K,V>
All Implemented Interfaces:
Iterable<K>

public final class HashMap<K,V>
extends Object
implements Iterable<K>

A mutable hash map providing O(1) lookup.

Version:
2.19
See Also:
HashMap

Constructor Summary
HashMap(Equal<K> e, Hash<K> h)
          Construct a hash map with the given equality and hashing strategy.
HashMap(Equal<K> e, Hash<K> h, int initialCapacity)
          Construct a hash map with the given equality and hashing strategy.
HashMap(Equal<K> e, Hash<K> h, int initialCapacity, float loadFactor)
          Construct a hash map with the given equality and hashing strategy.
 
Method Summary
 void clear()
          Clear all entries from this hash map.
 boolean contains(K k)
          Determines if the given key value exists in this hash map.
 void delete(K k)
          Deletes the entry in the hash map that corresponds to the given key.
 boolean eq(K k1, K k2)
          Compare two key values for equality using the underlying equality strategy.
 F<K,Option<V>> get()
          A curried version of get(Object).
 Option<V> get(K k)
          Returns a potential value that the given key maps to.
 Option<V> getDelete(K k)
          Deletes the entry in the hash map that corresponds to the given key and returns any associated value.
 int hash(K k)
          Compute the hash of the given key value using the underlying hashing strategy.
static
<K,V> HashMap<K,V>
hashMap()
          Construct a hash map that uses Object.equals(java.lang.Object) and Object.hashCode().
 boolean isEmpty()
          Determines if this hash map has any entries.
 Iterator<K> iterator()
          Returns an iterator for this map's keys.
 List<K> keys()
          Returns all key entries in this hash map.
 void set(K k, V v)
          Inserts the given key and value association into the hash map.
 int size()
          Returns the number of entries in this hash map.
 Collection<P2<K,V>> toCollection()
          Projects an immutable collection of this hash map.
 List<V> values()
          Returns all values in this hash map.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HashMap

public HashMap(Equal<K> e,
               Hash<K> h)
Construct a hash map with the given equality and hashing strategy.

Parameters:
e - The equality strategy.
h - The hashing strategy.

HashMap

public HashMap(Equal<K> e,
               Hash<K> h,
               int initialCapacity)
Construct a hash map with the given equality and hashing strategy.

Parameters:
e - The equality strategy.
h - The hashing strategy.
initialCapacity - The initial capacity.

HashMap

public HashMap(Equal<K> e,
               Hash<K> h,
               int initialCapacity,
               float loadFactor)
Construct a hash map with the given equality and hashing strategy.

Parameters:
e - The equality strategy.
h - The hashing strategy.
initialCapacity - The initial capacity.
loadFactor - The load factor.
Method Detail

iterator

public Iterator<K> iterator()
Returns an iterator for this map's keys. This method exists to permit the use in a for-each loop.

Specified by:
iterator in interface Iterable<K>
Returns:
A iterator for this map's keys.

hashMap

public static <K,V> HashMap<K,V> hashMap()
Construct a hash map that uses Object.equals(java.lang.Object) and Object.hashCode().

Returns:
A new hash map that uses Object.equals(java.lang.Object) and Object.hashCode().

eq

public boolean eq(K k1,
                  K k2)
Compare two key values for equality using the underlying equality strategy.

Parameters:
k1 - One key value to compare.
k2 - The other key value to compare.
Returns:
true if the two key values are equal, false otherwise.

hash

public int hash(K k)
Compute the hash of the given key value using the underlying hashing strategy.

Parameters:
k - The key value to computer the hash of.
Returns:
The hash of the given key value.

get

public Option<V> get(K k)
Returns a potential value that the given key maps to.

Parameters:
k - The key to look up in the hash map.
Returns:
A potential value for the given key.

get

public F<K,Option<V>> get()
A curried version of get(Object).

Returns:
A curried version of get(Object).

clear

public void clear()
Clear all entries from this hash map.


contains

public boolean contains(K k)
Determines if the given key value exists in this hash map.

Parameters:
k - The key value to look for in this hash map.
Returns:
true if this hash map contains the given key, false otherwise.

keys

public List<K> keys()
Returns all key entries in this hash map.

Returns:
All key entries in this hash map.

values

public List<V> values()
Returns all values in this hash map.

Returns:
All values in this hash map.

isEmpty

public boolean isEmpty()
Determines if this hash map has any entries.

Returns:
true if this hash map has no entries, false otherwise.

size

public int size()
Returns the number of entries in this hash map.

Returns:
The number of entries in this hash map.

set

public void set(K k,
                V v)
Inserts the given key and value association into the hash map.

Parameters:
k - The key to insert.
v - The value to insert.

delete

public void delete(K k)
Deletes the entry in the hash map that corresponds to the given key.

Parameters:
k - The key to delete from this hash map.

getDelete

public Option<V> getDelete(K k)
Deletes the entry in the hash map that corresponds to the given key and returns any associated value.

Parameters:
k - The key to delete from this hash map.
Returns:
The value that was associated with the given key, if there was one.

toCollection

public Collection<P2<K,V>> toCollection()
Projects an immutable collection of this hash map.

Returns:
An immutable collection of this hash map.

Copyright Tony Morris 2008

This software is released under an open source BSD licence.