org.apache.mina.util
Class CopyOnWriteMap<K,V>

java.lang.Object
  extended by org.apache.mina.util.CopyOnWriteMap<K,V>
All Implemented Interfaces:
Cloneable, Map<K,V>

public class CopyOnWriteMap<K,V>
extends Object
implements Map<K,V>, Cloneable

A thread-safe version of Map in which all operations that change the Map are implemented by making a new copy of the underlying Map. While the creation of a new Map can be expensive, this class is designed for cases in which the primary function is to read data from the Map, not to modify the Map. Therefore the operations that do not cause a change to this class happen quickly and concurrently.

Author:
Apache MINA Project

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Constructor Summary
CopyOnWriteMap()
          Creates a new instance of CopyOnWriteMap.
CopyOnWriteMap(int initialCapacity)
          Creates a new instance of CopyOnWriteMap with the specified initial size
CopyOnWriteMap(Map<K,V> data)
          Creates a new instance of CopyOnWriteMap in which the initial data being held by this map is contained in the supplied map.
 
Method Summary
 void clear()
          Removes all entries in this map.
 Object clone()
           
 boolean containsKey(Object key)
          Returns true if this map contains the provided key, otherwise this method return false.
 boolean containsValue(Object value)
          Returns true if this map contains the provided value, otherwise this method returns false.
 Set<Map.Entry<K,V>> entrySet()
          This method will return a read-only Set.
 V get(Object key)
          Returns the value associated with the provided key from this map.
 boolean isEmpty()
          Returns true if this map is empty, otherwise false.
 Set<K> keySet()
          This method will return a read-only Set.
 V put(K key, V value)
          Adds the provided key and value to this map.
 void putAll(Map<? extends K,? extends V> newData)
          Inserts all the keys and values contained in the provided map to this map.
 V remove(Object key)
          Removed the value and key from this map based on the provided key.
 int size()
          Returns the number of key/value pairs in this map.
 Collection<V> values()
          This method will return a read-only Collection.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Constructor Detail

CopyOnWriteMap

public CopyOnWriteMap()
Creates a new instance of CopyOnWriteMap.


CopyOnWriteMap

public CopyOnWriteMap(int initialCapacity)
Creates a new instance of CopyOnWriteMap with the specified initial size

Parameters:
initialCapacity - The initial size of the Map.

CopyOnWriteMap

public CopyOnWriteMap(Map<K,V> data)
Creates a new instance of CopyOnWriteMap in which the initial data being held by this map is contained in the supplied map.

Parameters:
data - A Map containing the initial contents to be placed into this class.
Method Detail

put

public V put(K key,
             V value)
Adds the provided key and value to this map.

Specified by:
put in interface Map<K,V>
See Also:
Map.put(java.lang.Object, java.lang.Object)

remove

public V remove(Object key)
Removed the value and key from this map based on the provided key.

Specified by:
remove in interface Map<K,V>
See Also:
Map.remove(java.lang.Object)

putAll

public void putAll(Map<? extends K,? extends V> newData)
Inserts all the keys and values contained in the provided map to this map.

Specified by:
putAll in interface Map<K,V>
See Also:
Map.putAll(java.util.Map)

clear

public void clear()
Removes all entries in this map.

Specified by:
clear in interface Map<K,V>
See Also:
Map.clear()

size

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

Specified by:
size in interface Map<K,V>
See Also:
Map.size()

isEmpty

public boolean isEmpty()
Returns true if this map is empty, otherwise false.

Specified by:
isEmpty in interface Map<K,V>
See Also:
Map.isEmpty()

containsKey

public boolean containsKey(Object key)
Returns true if this map contains the provided key, otherwise this method return false.

Specified by:
containsKey in interface Map<K,V>
See Also:
Map.containsKey(java.lang.Object)

containsValue

public boolean containsValue(Object value)
Returns true if this map contains the provided value, otherwise this method returns false.

Specified by:
containsValue in interface Map<K,V>
See Also:
Map.containsValue(java.lang.Object)

get

public V get(Object key)
Returns the value associated with the provided key from this map.

Specified by:
get in interface Map<K,V>
See Also:
Map.get(java.lang.Object)

keySet

public Set<K> keySet()
This method will return a read-only Set.

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

values

public Collection<V> values()
This method will return a read-only Collection.

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

entrySet

public Set<Map.Entry<K,V>> entrySet()
This method will return a read-only Set.

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

clone

public Object clone()
Overrides:
clone in class Object


Copyright © 2004-2011 Apache MINA Project. All Rights Reserved.