net.ranides.assira.collection.map
Class MultiHashMap<K,V>

java.lang.Object
  extended by java.util.AbstractMap<K,V>
      extended by java.util.HashMap<K,Collection<V>>
          extended by net.ranides.assira.collection.map.MultiHashMap<K,V>
Type Parameters:
K -
V -
All Implemented Interfaces:
Serializable, Cloneable, Map<K,Collection<V>>, MultiMap<K,V>

public class MultiHashMap<K,V>
extends HashMap<K,Collection<V>>
implements MultiMap<K,V>

Implementacja interfejsu MultiMap oparta o mapę hashującą.

Author:
ranides
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Constructor Summary
MultiHashMap()
          Constructs an empty MultiHashMap with the default initial capacity (16) and the default load factor (0.75).
MultiHashMap(int initialCapacity)
          Constructs an empty HashMap with the specified initial capacity and the default load factor (0.75).
MultiHashMap(int initialCapacity, float loadFactor)
          Constructs an empty HashMap with the specified initial capacity and load factor.
MultiHashMap(MultiMap<? extends K,? extends V> source)
          Constructs a new HashMap with the same mappings as the specified Map.
 
Method Summary
 boolean containsItem(V value)
          Sprawdza, czy podana wartość została conajmniej raz przypisana do conajmniej jednego klucza.
 V getFirst(K key)
          Zwraca pierwszą wartość przypisaną do podanego klucza
 V getLast(K key)
          Zwraca ostatnią wartość przypisaną do podanego klucza
 List<V> items()
          Zwraca listę wszystkich przypisanych kluczom wartości.
 int multiSize()
          Zwraca ilość wszystkich przypisań zdefiniowanych w mapie.
 void putItem(K key, V value)
          Dodaje kolejne przypisanie do podanego klucza, nie nadpisując ani nie usuwając poprzednich.
 void putItems(Map<? extends K,? extends V> source)
          Dodaje wszystkie przypisania zdefiniowane w podanej mapie, nie nadpisując ani nie usuwając poprzednich.
 void putItems(MultiMap<? extends K,? extends V> source)
          Dodaje wszystkie przypisania zdefiniowane w podanej multimapie, nie nadpisując ani nie usuwając poprzednich.
 V removeFirst(K key)
          Usuwa pierwszą wartość przypisaną do podanego klucza.
 boolean removeItem(K key, V value)
          Usuwa podane powiązanie.
 V removeLast(K key)
          Usuwa ostatnią wartość przypisaną do podanego klucza.
 
Methods inherited from class java.util.HashMap
clear, clone, containsKey, containsValue, entrySet, get, isEmpty, keySet, put, putAll, remove, size, values
 
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, values
 

Constructor Detail

MultiHashMap

public MultiHashMap()
Constructs an empty MultiHashMap with the default initial capacity (16) and the default load factor (0.75).


MultiHashMap

public MultiHashMap(int initialCapacity)
Constructs an empty HashMap with the specified initial capacity and the default load factor (0.75).

Parameters:
initialCapacity - the initial capacity.
Throws:
IllegalArgumentException - if the initial capacity is negative.

MultiHashMap

public MultiHashMap(int initialCapacity,
                    float loadFactor)
Constructs an empty HashMap with the specified initial capacity and load factor.

Parameters:
initialCapacity - the initial capacity
loadFactor - the load factor
Throws:
IllegalArgumentException - if the initial capacity is negative or the load factor is nonpositive

MultiHashMap

public MultiHashMap(MultiMap<? extends K,? extends V> source)
Constructs a new HashMap with the same mappings as the specified Map. The HashMap is created with default load factor (0.75) and an initial capacity sufficient to hold the mappings in the specified Map.

Parameters:
source -
Throws:
NullPointerException - if the specified map is null
Method Detail

containsItem

public boolean containsItem(V value)
Description copied from interface: MultiMap
Sprawdza, czy podana wartość została conajmniej raz przypisana do conajmniej jednego klucza.

Specified by:
containsItem in interface MultiMap<K,V>
Returns:

getFirst

public V getFirst(K key)
Description copied from interface: MultiMap
Zwraca pierwszą wartość przypisaną do podanego klucza

Specified by:
getFirst in interface MultiMap<K,V>
Returns:
{code null} - jeśli brak przypisania

getLast

public V getLast(K key)
Description copied from interface: MultiMap
Zwraca ostatnią wartość przypisaną do podanego klucza

Specified by:
getLast in interface MultiMap<K,V>
Returns:
{code null} - jeśli brak przypisania

putItem

public void putItem(K key,
                    V value)
Description copied from interface: MultiMap
Dodaje kolejne przypisanie do podanego klucza, nie nadpisując ani nie usuwając poprzednich.

Specified by:
putItem in interface MultiMap<K,V>

putItems

public void putItems(Map<? extends K,? extends V> source)
Description copied from interface: MultiMap
Dodaje wszystkie przypisania zdefiniowane w podanej mapie, nie nadpisując ani nie usuwając poprzednich.

Specified by:
putItems in interface MultiMap<K,V>

putItems

public void putItems(MultiMap<? extends K,? extends V> source)
Description copied from interface: MultiMap
Dodaje wszystkie przypisania zdefiniowane w podanej multimapie, nie nadpisując ani nie usuwając poprzednich.

Specified by:
putItems in interface MultiMap<K,V>

removeFirst

public V removeFirst(K key)
Description copied from interface: MultiMap
Usuwa pierwszą wartość przypisaną do podanego klucza. Jeśli do klucza przypisana była tylko jedna wartość, to klucz jest usuwany z mapy.

Specified by:
removeFirst in interface MultiMap<K,V>
Returns:
usunięty element lub {code null}, jeśli nie znaleziono przypisania

removeLast

public V removeLast(K key)
Description copied from interface: MultiMap
Usuwa ostatnią wartość przypisaną do podanego klucza. Jeśli do klucza przypisana była tylko jedna wartość, to klucz jest usuwany z mapy.

Specified by:
removeLast in interface MultiMap<K,V>
Returns:
usunięty element lub {code null}, jeśli nie znaleziono przypisania

removeItem

public boolean removeItem(K key,
                          V value)
Description copied from interface: MultiMap
Usuwa podane powiązanie. Operacja usuwa tylko jeden element, więc jeśli podana wartość była przypisana do klucza wielokrotnie, to pozostałe wartości nadal istnieją. Jeśli do klucza przypisana była tylko jedna wartość, to klucz jest usuwany z mapy.

Specified by:
removeItem in interface MultiMap<K,V>
Returns:
true - jeśli znaleziono i usunięto przypisanie

items

public List<V> items()
Description copied from interface: MultiMap
Zwraca listę wszystkich przypisanych kluczom wartości. Jeśli przypisania wartości były wykonywane wielokrotnie (do jednego lub więcej kluczy) to wartości będą się powtarzać.

Specified by:
items in interface MultiMap<K,V>
Returns:

multiSize

public int multiSize()
Description copied from interface: MultiMap
Zwraca ilość wszystkich przypisań zdefiniowanych w mapie. Należy zwrócić uwagę, że metoda size zwraca ilość zdefniowanych kluczy, zaś poniższa zaś metoda zwraca ilość przypisanych wartości.

Specified by:
multiSize in interface MultiMap<K,V>
Returns:


Copyright © 2013. All Rights Reserved.