Package de.bsvrz.dav.daf.util
Class HashBagMap<K,V>
java.lang.Object
de.bsvrz.dav.daf.util.HashBagMap<K,V>
- All Implemented Interfaces:
de.bsvrz.sys.funclib.kappich.collections.MultiValueMap<K,,V> Serializable
public class HashBagMap<K,V>
extends Object
implements de.bsvrz.sys.funclib.kappich.collections.MultiValueMap<K,V>, Serializable
Klasse, die zu einem Key mehrere Values zuordnen kann. Unter jedem Key wird ein Set gespeichert, sodass pro Key das gleiche Objekt maximal einmal
gespeichert wird. Dies kann durch den optionalen useSet-parameter geändert werden, wodurch dann eine Liste verwendet wird.
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionErstellt eine HashBagMap, die zu einem Key mehrere Values speichert, und für die Speicherung der Values einSetverwendet, sodass pro Key jedes Objekt nur einmal gespeichert wird.HashBagMap(boolean useSet) Erstellt eine HashBagMap, die zu einem Key mehrere Values speichert.HashBagMap(int initialCapacity) Erstellt eine HashBagMap, die zu einem Key mehrere Values speichert, und für die Speicherung der Values einSetverwendet, sodass pro Key jedes Objekt nur einmal gespeichert wird.HashBagMap(int initialCapacity, boolean useSet) Erstellt eine HashBagMap, die zu einem Key mehrere Values speichert. -
Method Summary
Modifier and TypeMethodDescriptionbooleanFügt einen Entry hinzu.booleanFügt einem Key einen Wert hinzuvoidaddAll(HashBagMap<K, V> hashBagMap) Fügt eine bestehendeHashBagMap<K, V>hinzuvoidaddAll(de.bsvrz.sys.funclib.kappich.collections.MultiValueMap<? extends K, ? extends V> multiValueMap) voidaddAll(Map<? extends K, Collection<? extends V>> map) booleanaddAll(K key, Collection<? extends V> value) Fügt einem Key mehrere Werte hinzuvoidclear()booleanGibttruezurück, wenn ein Objekt vom Typ Map.Entry enthalten ist, also hier dem Entry-Key mindestens das Entry-Value zugeordnet ist.booleancontainsKey(Object key) Gibt true zurück, wenn die Klasse zu diesem Key mindestens einen Wert enthältbooleancontainsValue(Object value) Gibt true zurück, wenn dieser Wert mindestens einmal einem Key zugeordnet wurdeSet<Map.Entry<K,Collection<V>>> entrySet()Gibt ein Set über alle Einträge zurückFindet Keys, die mindestens den angegeben Wert als Value habenfindKeys(Collection<? extends V> values) Findet Keys, die mindestens einen der angegebenen Werte als (nicht unbedingt einzigen) Value habenGibt die Collection mit Objekten zurück, die hinter diesem Key liegenbooleanisEmpty()Gibt true zurück, wenn keine Werte gespeichert sindbooleankeySet()Gibt ein Set über die Keys zurückbooleanLöscht einen EintragLöscht alle Einträge eines Keysintsize()Gibt die Anzahl der gespeicherten Werte (Values) zurücktoString()values()Gibt eine Liste über alle values zurück.valueSet()Gibt ein Set über alle values zurück.
-
Field Details
-
HASHSET_THRESHOLD
public static final int HASHSET_THRESHOLD- See Also:
-
-
Constructor Details
-
HashBagMap
public HashBagMap()Erstellt eine HashBagMap, die zu einem Key mehrere Values speichert, und für die Speicherung der Values einSetverwendet, sodass pro Key jedes Objekt nur einmal gespeichert wird. -
HashBagMap
public HashBagMap(boolean useSet) Erstellt eine HashBagMap, die zu einem Key mehrere Values speichert. Über den useSet-parameter kann festgelegt werden, ob für die Speicherung der Values intern ein Set (keine doppelten Values pro Key) oder eine Liste (doppelte Values pro Key möglich, ggf. etwas speichersparender) verwendet wird.- Parameters:
useSet- ob ein Set verwendet werden soll
-
HashBagMap
public HashBagMap(int initialCapacity) Erstellt eine HashBagMap, die zu einem Key mehrere Values speichert, und für die Speicherung der Values einSetverwendet, sodass pro Key jedes Objekt nur einmal gespeichert wird.- Parameters:
initialCapacity- Initiale Key-Kapazität
-
HashBagMap
public HashBagMap(int initialCapacity, boolean useSet) Erstellt eine HashBagMap, die zu einem Key mehrere Values speichert. Über den useSet-parameter kann festgelegt werden, ob für die Speicherung der Values intern ein Set (keine doppelten Values pro Key) oder eine Liste (doppelte Values pro Key möglich, ggf. etwas speichersparender) verwendet wird.- Parameters:
useSet- ob ein Set verwendet werden sollinitialCapacity- Initiale Key-Kapazität
-
-
Method Details
-
size
public int size()Gibt die Anzahl der gespeicherten Werte (Values) zurück -
isEmpty
public boolean isEmpty()Gibt true zurück, wenn keine Werte gespeichert sind -
contains
Gibttruezurück, wenn ein Objekt vom Typ Map.Entry enthalten ist, also hier dem Entry-Key mindestens das Entry-Value zugeordnet ist. -
add
Fügt einen Entry hinzu. Shortcut für add(entry.getKey(), entry.getValue()).- Specified by:
addin interfacede.bsvrz.sys.funclib.kappich.collections.MultiValueMap<K,V> - Parameters:
entry- Entry- Returns:
- siehe
add(Object, Object)
-
containsKey
Gibt true zurück, wenn die Klasse zu diesem Key mindestens einen Wert enthält -
containsValue
Gibt true zurück, wenn dieser Wert mindestens einmal einem Key zugeordnet wurde -
get
Gibt die Collection mit Objekten zurück, die hinter diesem Key liegen -
add
Fügt einem Key einen Wert hinzu -
addAll
Fügt einem Key mehrere Werte hinzu -
remove
Löscht einen Eintrag -
removeAll
Löscht alle Einträge eines Keys -
clear
public void clear() -
keySet
Gibt ein Set über die Keys zurück -
values
Gibt eine Liste über alle values zurück. Änderungen an der zurückgegeben Collection haben keine Auswirkungen auf die HashBagMap. Einträge, die mehreren Keys zugeordnet sind werden mehrfach zurückgegeben. Die Reihenfolge der Listeneinträge ist nicht definiert. -
valueSet
Gibt ein Set über alle values zurück. Änderungen an der zurückgegeben Collection haben keine Auswirkungen auf die HashBagMap. -
entrySet
Gibt ein Set über alle Einträge zurück -
toString
-
findKey
Findet Keys, die mindestens den angegeben Wert als Value haben -
findKeys
Findet Keys, die mindestens einen der angegebenen Werte als (nicht unbedingt einzigen) Value haben -
addAll
-
addAll
-
addAll
Fügt eine bestehendeHashBagMap<K, V>hinzu- Parameters:
hashBagMap-
-
isUsingUniqueValues
public boolean isUsingUniqueValues()
-