| java.util.concurrent.ConcurrentMap<K, V> | 
 
      
     
 
     
      
       
        |  Known Indirect Subclasses | 
      
     
 
      
      Class Overview
 
      A Map providing additional atomic putIfAbsent, remove, and replace methods. 
      Memory consistency effects: As with other concurrent collections, actions in a thread prior to placing an object into a ConcurrentMap as a key or value happen-before actions subsequent to the access or removal of that object from the ConcurrentMap in another thread.
 
      
      
      
      Summary
 
       
      
       
        
         | Public Methods | 
 
         
         | abstract V | putIfAbsent(K key, V value) 
           If the specified key is not already associated with a value, associate it with the given value.
           | 
 
         
         | abstract boolean | remove(
           Object key, 
           Object value) 
           Removes the entry for a key only if currently mapped to a given value.
           | 
 
         
         | abstract boolean | replace(K key, V oldValue, V newValue) 
           Replaces the entry for a key only if currently mapped to a given value.
           | 
 
         
         | abstract V | replace(K key, V value) 
           Replaces the entry for a key only if currently mapped to some value.
           | 
 
       
      
 
       
      
       
        
         | [Expand] 
           Inherited Methods
           | 
 
         
         |  From interface java.util.Map  
            
             
             
             
               
               | abstract void | clear() 
                 Removes all elements from this 
                 Map, leaving it empty. |   
               | abstract boolean | containsKey(
                 Object key) 
                 Returns whether this 
                 Mapcontains the specified key. |   
               | abstract boolean | containsValue(
                 Object value) 
                 Returns whether this 
                 Mapcontains the specified value. |   
               | abstract 
                 Set<
                 Entry<K, V>> | entrySet() 
                 Returns a 
                 Setcontaining all of the mappings in thisMap. |   
               | abstract boolean | equals(
                 Object object) 
                 Compares the argument to the receiver, and returns 
                 trueif the specified object is aMapand bothMaps contain the same mappings. |   
               | abstract V | get(
                 Object key) 
                 Returns the value of the mapping with the specified key.
                 |   
               | abstract int | hashCode() 
                 Returns an integer hash code for the receiver.
                 |   
               | abstract boolean | isEmpty() 
                 Returns whether this map is empty.
                 |   
               | abstract 
                 Set<K> | keySet() 
                 Returns a set of the keys contained in this 
                 Map. |   
               | abstract V | put(K key, V value) 
                 Maps the specified key to the specified value.
                 |   
               | abstract void | putAll(
                 Map<? extends K, ? extends V> map) 
                 Copies every mapping in the specified 
                 Mapto thisMap. |   
               | abstract V | remove(
                 Object key) 
                 Removes a mapping with the specified key from this 
                 Map. |   
               | abstract int | size() 
                 Returns the number of mappings in this 
                 Map. |   
               | abstract 
                 Collection<V> | values() 
                 Returns a 
                 Collectionof the values contained in thisMap. |  | 
 
       
      
 
      
      
      
      
      
      
      
      
      
      
      
      
     Public Methods
 
      
      
        public abstract V  putIfAbsent (K key, V value) 
 
       
       
       
        If the specified key is not already associated with a value, associate it with the given value. This is equivalent to 
         if (!map.containsKey(key))
   return map.put(key, value);
 else
   return map.get(key);
 except that the action is performed atomically.
        
         
        
        Parameters
 
         
         
           
           | key | key with which the specified value is to be associated | 
 
           
           | value | value to be associated with the specified key | 
 
         
        
 
         
        
        Returns
 
        
         - the previous value associated with the specified key, or null if there was no mapping for the key. (A null return can also indicate that the map previously associated null with the key, if the implementation supports null values.)
  
        
        
       
      
      
        public abstract boolean  remove (Object key, Object value) 
 
       
       
       
        Removes the entry for a key only if currently mapped to a given value. This is equivalent to 
         if (map.containsKey(key) && map.get(key).equals(value)) {
   map.remove(key);
   return true;
  else
   return false;}
 except that the action is performed atomically.
        
         
        
        Parameters
 
         
         
           
           | key | key with which the specified value is associated | 
 
           
           | value | value expected to be associated with the specified key | 
 
         
        
 
         
        
        Returns
 
        
         - true if the value was removed
  
        
        
       
      
      
        public abstract boolean  replace (K key, V oldValue, V newValue) 
 
       
       
       
        Replaces the entry for a key only if currently mapped to a given value. This is equivalent to 
         if (map.containsKey(key) && map.get(key).equals(oldValue)) {
   map.put(key, newValue);
   return true;
  else
   return false;}
 except that the action is performed atomically.
        
         
        
        Parameters
 
         
         
           
           | key | key with which the specified value is associated | 
 
           
           | oldValue | value expected to be associated with the specified key | 
 
           
           | newValue | value to be associated with the specified key | 
 
         
        
 
         
        
        Returns
 
        
         - true if the value was replaced
  
        
        
       
      
      
        public abstract V  replace (K key, V value) 
 
       
       
       
        Replaces the entry for a key only if currently mapped to some value. This is equivalent to 
         if (map.containsKey(key)) {
   return map.put(key, value);
  else
   return null;}
 except that the action is performed atomically.
        
         
        
        Parameters
 
         
         
           
           | key | key with which the specified value is associated | 
 
           
           | value | value to be associated with the specified key | 
 
         
        
 
         
        
        Returns
 
        
         - the previous value associated with the specified key, or null if there was no mapping for the key. (A null return can also indicate that the map previously associated null with the key, if the implementation supports null values.)