com.opera.core.systems.util
Class StackHashMap<K,V>

java.lang.Object
  extended by com.opera.core.systems.util.StackHashMap<K,V>
Type Parameters:
K -
V -
All Implemented Interfaces:
java.util.concurrent.ConcurrentMap<K,V>, java.util.Map<K,V>

public class StackHashMap<K,V>
extends java.lang.Object
implements java.util.concurrent.ConcurrentMap<K,V>

A thread safe stack hash map for use in window manager The backing map is a LinkedHashMap that provides predictable iteration order. All the operations that require thread safety are protected by the lock of synchronized map.

Author:
Deniz Turkoglu

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>
 
Constructor Summary
StackHashMap()
           
 
Method Summary
 java.util.Map<K,V> asMap()
           
 java.util.List<K> asStack()
           
 void clear()
           
 boolean containsKey(java.lang.Object key)
           
 boolean containsValue(java.lang.Object value)
           
 java.util.Set<java.util.Map.Entry<K,V>> entrySet()
           
 V get(java.lang.Object key)
           
 boolean isEmpty()
           
 java.util.Set<K> keySet()
           
 V peek()
           
 K peekKey()
           
 V pop()
          Removes the first value from the map
 V push(K k, V v)
           
 V put(K key, V value)
           
 void putAll(java.util.Map<? extends K,? extends V> t)
           
 V putIfAbsent(K k, V v)
          Puts a key to top of the map if absent if the key is present in stack it is removed
 V remove(java.lang.Object key)
           
 boolean remove(java.lang.Object key, java.lang.Object value)
           
 V replace(K key, V value)
           
 boolean replace(K key, V oldValue, V newValue)
           
 int size()
           
 java.util.Collection<V> values()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Constructor Detail

StackHashMap

public StackHashMap()
Method Detail

containsKey

public boolean containsKey(java.lang.Object key)
Specified by:
containsKey in interface java.util.Map<K,V>

containsValue

public boolean containsValue(java.lang.Object value)
Specified by:
containsValue in interface java.util.Map<K,V>

get

public V get(java.lang.Object key)
Specified by:
get in interface java.util.Map<K,V>

put

public V put(K key,
             V value)
Specified by:
put in interface java.util.Map<K,V>

putAll

public void putAll(java.util.Map<? extends K,? extends V> t)
Specified by:
putAll in interface java.util.Map<K,V>

keySet

public java.util.Set<K> keySet()
Specified by:
keySet in interface java.util.Map<K,V>

values

public java.util.Collection<V> values()
Specified by:
values in interface java.util.Map<K,V>

entrySet

public java.util.Set<java.util.Map.Entry<K,V>> entrySet()
Specified by:
entrySet in interface java.util.Map<K,V>

size

public int size()
Specified by:
size in interface java.util.Map<K,V>

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.Map<K,V>

remove

public V remove(java.lang.Object key)
Specified by:
remove in interface java.util.Map<K,V>

clear

public void clear()
Specified by:
clear in interface java.util.Map<K,V>

pop

public V pop()
Removes the first value from the map

Returns:
the value that was removed

push

public V push(K k,
              V v)

peek

public V peek()
Returns:
the first value in the backing map

peekKey

public K peekKey()
Returns:
the first key in the backing linked list

asStack

public java.util.List<K> asStack()
Returns:
an unmodifiable copy of the backing linkedlist(used as a stack)

asMap

public java.util.Map<K,V> asMap()
Returns:
an unmodifiable copy of the backing map

putIfAbsent

public V putIfAbsent(K k,
                     V v)
Puts a key to top of the map if absent if the key is present in stack it is removed

Specified by:
putIfAbsent in interface java.util.concurrent.ConcurrentMap<K,V>
Parameters:
k -
v -
Returns:
the value if it is not contained, null otherwise

remove

public boolean remove(java.lang.Object key,
                      java.lang.Object value)
Specified by:
remove in interface java.util.concurrent.ConcurrentMap<K,V>

replace

public boolean replace(K key,
                       V oldValue,
                       V newValue)
Specified by:
replace in interface java.util.concurrent.ConcurrentMap<K,V>

replace

public V replace(K key,
                 V value)
Specified by:
replace in interface java.util.concurrent.ConcurrentMap<K,V>


Copyright © 2011. All Rights Reserved.