## org.apache.mahout.cf.taste.impl.common
Class FastMap<K,V>

    java.lang.Object
      org.apache.mahout.cf.taste.impl.common.FastMap<K,V>

All Implemented Interfaces:
  Serializable, Cloneable, Map<K,V>

    public final class FastMap<K,V>

extends Object
implements Map<K,V>, Serializable, Cloneable

This is an optimized `Map` implementation, based on algorithms described in Knuth's "Art of Computer Programming", Vol. 3, p. 529.

It should be faster than `HashMap` in some cases, but not all. Its main feature is a "max size" and the ability to transparently, efficiently and semi-intelligently evict old entries when max size is exceeded.

This class is not a bit thread-safe.

This implementation does not allow `null` as a key or value.

See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from interface java.util.Map
`Map.Entry<K,V>`

Field Summary
`static int` `NO_MAX_SIZE`

Constructor Summary
`FastMap()` Creates a new `FastMap` with default capacity.
`FastMap(int size)`
`FastMap(int size, float loadFactor)`
`FastMap(int size, int maxSize)`
`FastMap(int size, int maxSize, float loadFactor)` Creates a new whose capacity can accommodate the given number of entries without rehash.
`FastMap(Map<K,V> other)`

Method Summary
`void` `clear()`
`FastMap<K,V>` `clone()`
`boolean` `containsKey(Object key)`
`boolean` `containsValue(Object value)`
`Set<Map.Entry<K,V>>` `entrySet()`
`boolean` `equals(Object other)`
`V` `get(Object key)`
`int` `hashCode()`
`boolean` `isEmpty()`
`Set<K>` `keySet()`
`V` `put(K key, V value)`
`void` `putAll(Map<? extends K,? extends V> map)`
`void` `rehash()`
`V` `remove(Object key)`
`int` `size()`
`String` `toString()`
`Collection<V>` `values()`

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### NO_MAX_SIZE

    public static final int NO_MAX_SIZE

See Also:
  Constant Field Values

Constructor Detail

### FastMap

    public FastMap()

  Creates a new `FastMap` with default capacity.

### FastMap

    public FastMap(int size)

### FastMap

    public FastMap(Map<K,V> other)

### FastMap

    public FastMap(int size,
                   float loadFactor)

### FastMap

    public FastMap(int size,
                   int maxSize)

### FastMap

    public FastMap(int size,
                   int maxSize,
                   float loadFactor)

  Creates a new whose capacity can accommodate the given number of entries without rehash.

  Parameters:
    `size` - desired capacity
    `maxSize` - max capacity
  Throws:
    `IllegalArgumentException` - if size is less than 0, maxSize is less than 1 or at least half of `RandomUtils.MAX_INT_SMALLER_TWIN_PRIME`, or loadFactor is less than 1

Method Detail

### get

    public V get(Object key)

  Specified by:
    `get` in interface `Map<K,V>`

### size

    public int size()

  Specified by:
    `size` in interface `Map<K,V>`

### isEmpty

    public boolean isEmpty()

  Specified by:
    `isEmpty` in interface `Map<K,V>`

### containsKey

    public boolean containsKey(Object key)

  Specified by:
    `containsKey` in interface `Map<K,V>`

### containsValue

    public boolean containsValue(Object value)

  Specified by:
    `containsValue` in interface `Map<K,V>`

### put

    public V put(K key,
                 V value)

  Specified by:
    `put` in interface `Map<K,V>`
  Throws:
    `NullPointerException` - if key or value is null

### putAll

    public void putAll(Map<? extends K,? extends V> map)

  Specified by:
    `putAll` in interface `Map<K,V>`

### remove

    public V remove(Object key)

  Specified by:
    `remove` in interface `Map<K,V>`

### clear

    public void clear()

  Specified by:
    `clear` in interface `Map<K,V>`

### keySet

    public Set<K> keySet()

  Specified by:
    `keySet` in interface `Map<K,V>`

### values

    public Collection<V> values()

  Specified by:
    `values` in interface `Map<K,V>`

### entrySet

    public Set<Map.Entry<K,V>> entrySet()

  Specified by:
    `entrySet` in interface `Map<K,V>`

### rehash

    public void rehash()

### clone

    public FastMap<K,V> clone()

  Overrides:
    `clone` in class `Object`

### hashCode

    public int hashCode()

  Specified by:
    `hashCode` in interface `Map<K,V>`
  Overrides:
    `hashCode` in class `Object`

### equals

    public boolean equals(Object other)

  Specified by:
    `equals` in interface `Map<K,V>`
  Overrides:
    `equals` in class `Object`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

Copyright © 2008–2014 The Apache Software Foundation. All rights reserved.