ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/java/util/concurrent/ConcurrentMap.java
Revision: 1.6
Committed: Fri Aug 1 22:40:05 2003 UTC (20 years, 10 months ago) by dl
Branch: MAIN
Changes since 1.5: +12 -1 lines
Log Message:
Added remove to ConcurrentMap. Fixed constuctor call in Executors.

File Contents

# Content
1 /*
2 * Written by Doug Lea with assistance from members of JCP JSR-166
3 * Expert Group and released to the public domain. Use, modify, and
4 * redistribute this code in any way without acknowledgement.
5 */
6
7 package java.util.concurrent;
8 import java.util.Map;
9
10 /**
11 * A {@link java.util.Map} providing an additional atomic
12 * <tt>putIfAbsent</tt> and <tt>remove</tt> methods.
13 * @since 1.5
14 * @author Doug Lea
15 */
16 public interface ConcurrentMap<K, V> extends Map<K, V> {
17 /**
18 * If the specified key is not already associated
19 * with a value, associate it with the given value.
20 * This is equivalent to
21 * <pre>
22 * if (!map.containsKey(key))
23 * return map.put(key, value);
24 * else
25 * return map.get(key);
26 * </pre>
27 * Except that the action is performed atomically.
28 * @param key key with which the specified value is to be associated.
29 * @param value value to be associated with the specified key.
30 * @return previous value associated with specified key, or <tt>null</tt>
31 * if there was no mapping for key. A <tt>null</tt> return can
32 * also indicate that the map previously associated <tt>null</tt>
33 * with the specified key, if the implementation supports
34 * <tt>null</tt> values.
35 *
36 * @throws UnsupportedOperationException if the <tt>put</tt> operation is
37 * not supported by this map.
38 * @throws ClassCastException if the class of the specified key or value
39 * prevents it from being stored in this map.
40 * @throws IllegalArgumentException if some aspect of this key or value
41 * prevents it from being stored in this map.
42 * @throws NullPointerException this map does not permit <tt>null</tt>
43 * keys or values, and the specified key or value is
44 * <tt>null</tt>.
45 *
46 **/
47 V putIfAbsent(K key, V value);
48
49 /**
50 * Remove entry for key only if currently mapped to given value.
51 * Acts as
52 * <pre>
53 * if (map.get(key) == value) map.remove(key);
54 * </pre>
55 * except that the action is performed atomically.
56 */
57 boolean remove(K key, V value);
58
59 }