scala.collection.immutable

class HashMap

[source: scala/collection/immutable/HashMap.scala]

@serializable

class HashMap[A, B]
extends Map[A, B] with HashTable[A]
This class implements immutable maps/sets using a hash table. It is optimized for sequential accesses where the last updated table is accessed most often. It supports with reasonable efficiency accesses to previous versions of the table by keeping a change log that's regularly compacted. It needs to synchronize most methods, so it is less suitable for highly concurrent accesses.
Author
Martin Odersky
Version
2.0, 19/01/2007
Type Summary
type Entry
Value Summary
protected var deltaSize : Int
protected var later : HashMap[A, B]
protected var oldKey : A
protected var oldValue : Option[B]
Values and Variables inherited from HashTable
loadFactorDenum, table, tableSize, threshold
Method Summary
def - (key : A) : Map[A, B]
Remove a key from this map
def elements : Iterator[(A, B)]
Creates a new iterator over all elements contained in this object.
def empty [C] : Map[A, C]
This method returns a new map instance of the same class mapping keys of the same type to values of type C.
def get (key : A) : Option[B]
Check if this map maps key to a value and return the value if it exists.
override def size : Int
Returns the size of this hash table.
def update [B1 >: B](key : A, value : B1) : Map[A, B1]
This method allows one to create a new map with an additional mapping from key to value. If the map contains already a mapping for key, it will be overridden by this function.
Methods inherited from HashTable
loadFactor, initialSize, initialThreshold, findEntry, addEntry, removeEntry, entries, clear, elemEquals, elemHashCode, improve, index
Methods inherited from Map
+, +, ++, ++, -, --, --, withDefault, withDefaultValue, transform, filter, +, incl, incl, excl, excl, mappingToString
Methods inherited from Map
getOrElse, isEmpty, apply, contains, isDefinedAt, keys, keySet, values, equals, hashCode, toString, default, projection, filterKeys, mapElements, stringPrefix
Methods inherited from Collection
toArray
Methods inherited from Iterable
concat, ++, map, flatMap, partition, takeWhile, dropWhile, take, drop, foreach, forall, exists, find, findIndexOf, indexOf, foldLeft, foldRight, /:, :\, reduceLeft, reduceRight, copyToBuffer, sameElements, toList, toSeq, toStream, mkString, mkString, mkString, addString, addString, addString, copyToArray, hasDefiniteSize
Methods inherited from PartialFunction
orElse, andThen
Methods inherited from Function1
compose
Methods inherited from AnyRef
getClass, clone, notify, notifyAll, wait, wait, wait, finalize, ==, !=, eq, ne, synchronized
Methods inherited from Any
==, !=, isInstanceOf, asInstanceOf
Type Details
type Entry

Value Details
protected var later : HashMap[A, B]

protected var oldKey : A

protected var oldValue : Option[B]

protected var deltaSize : Int

Method Details
def empty[C] : Map[A, C]
This method returns a new map instance of the same class mapping keys of the same type to values of type C.
Overrides
Map.empty

def get(key : A) : Option[B]
Check if this map maps key to a value and return the value if it exists.
Parameters
key - the key of the mapping of interest
Returns
the value of the mapping, if it exists

def update[B1 >: B](key : A, value : B1) : Map[A, B1]
This method allows one to create a new map with an additional mapping from key to value. If the map contains already a mapping for key, it will be overridden by this function.
Parameters
key - ...
value - ...
Returns
the created map
Deprecated
use +({A, B}) instead
Overrides
Map.update

def -(key : A) : Map[A, B]
Remove a key from this map
Parameters
key - the key to be removed
Returns
If the map does not contain a binding for key it is returned unchanged. Otherwise, return a new map without a binding for key
Overrides
Map.-

override def size : Int
Returns the size of this hash table.
Overrides
HashTable.size

def elements : Iterator[(A, B)]
Creates a new iterator over all elements contained in this object.
Returns
the new iterator