Java ConcurrentMap putIfAbsent(ConcurrentMap map, K key, V value)

Here you can find the source of putIfAbsent(ConcurrentMap map, K key, V value)

Description

How putIfAbsent should work, returns the one value that actually ends up in the ConcurrentMap

License

Apache License

Parameter

Parameter Description
map The map
key The key
value The value to put

Return

The value that exists in the Map for this key at the point in time that is called

Declaration

public static <K, V> V putIfAbsent(ConcurrentMap<K, V> map, K key, V value) 

Method Source Code

//package com.java2s;
/**//from ww  w .  j  av a  2 s  .co m
 * Licensed to Apereo under one or more contributor license
 * agreements. See the NOTICE file distributed with this work
 * for additional information regarding copyright ownership.
 * Apereo licenses this file to you under the Apache License,
 * Version 2.0 (the "License"); you may not use this file
 * except in compliance with the License.  You may obtain a
 * copy of the License at the following location:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

import java.util.concurrent.ConcurrentMap;

public class Main {
    /**
     * How putIfAbsent should work, returns the one value that actually ends up in the {@link ConcurrentMap}
     * 
     * @param map The map
     * @param key The key
     * @param value The value to put
     * @return The value that exists in the Map for this key at the point in time that {@link ConcurrentMap#putIfAbsent(Object, Object)} is called 
     */
    public static <K, V> V putIfAbsent(ConcurrentMap<K, V> map, K key, V value) {
        final V existingValue = map.putIfAbsent(key, value);
        if (existingValue == null) {
            return value;
        }

        return existingValue;
    }
}

Related

  1. getSingleInstance(Class classType)
  2. getTypeFromKind(String kind)
  3. is(Class clazz, Collection> clazzes, ConcurrentMap, Boolean> cache)
  4. isClassClass(Class clazz)
  5. putIfAbsent(ConcurrentMap map, K key, V value)
  6. putIfAbsent(ConcurrentMap map, K key, V value)
  7. putIfAbsent(ConcurrentMap target, K key, V value)
  8. putIfAbsent(final ConcurrentMap map, final K key, final V value)
  9. putIfAbsentAndGet(ConcurrentMap map, K key, V newValue)