public class HashBagMap<K,V>
extends java.lang.Object
implements java.io.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.
Modifier and Type | Field and Description |
---|---|
static int |
HASHSET_THRESHOLD |
Constructor and Description |
---|
HashBagMap()
Erstellt eine HashBagMap, die zu einem Key mehrere Values speichert, und für die Speicherung der Values ein
Set verwendet, 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 ein
Set verwendet, sodass pro Key jedes Objekt nur einmal gespeichert wird. |
HashBagMap(int initialCapacity,
boolean useSet)
Erstellt eine HashBagMap, die zu einem Key mehrere Values speichert.
|
Modifier and Type | Method and Description |
---|---|
boolean |
add(K key,
V value)
Fügt einem Key einen Wert hinzu
|
boolean |
add(java.util.Map.Entry<K,V> entry)
Fügt einen Entry hinzu.
|
void |
addAll(HashBagMap<K,V> hashBagMap) |
boolean |
addAll(K key,
java.util.Collection<? extends V> value)
Fügt einem Key mehrere Werte hinzu
|
void |
addAll(java.util.Map<K,java.util.Collection<V>> map) |
void |
clear() |
boolean |
contains(java.lang.Object o)
Gibt true zurück, wenn ein Objekt vom Typ Map.Entry enthalten ist, also hier dem Entry-Key mindestens das Entry-Value zugeordnet ist.
|
boolean |
containsKey(java.lang.Object key)
Gibt true zurück, wenn die Klasse zu diesem Key mindestens einen Wert enthält
|
boolean |
containsValue(java.lang.Object value)
Gibt true zurück, wenn dieser Wert mindestens einmal einem Key zugeordnet wurde
|
java.util.Set<java.util.Map.Entry<K,java.util.Collection<V>>> |
entrySet()
Gibt ein Set über alle Einträge zurück
|
java.util.Set<K> |
findKey(V value)
Findet Keys, die mindestens den angegeben Wert als Value haben
|
java.util.Set<K> |
findKeys(java.util.Collection<V> values)
Findet Keys, die mindestens einen der angegebenen Werte als (nicht unbedingt einzigen) Value haben
|
java.util.Collection<V> |
get(K key)
Gibt die Collection mit Objekten zurück, die hinter diesem Key liegen
|
boolean |
isEmpty()
Gibt true zurück, wenn keine Werte gespeichert sind
|
java.util.Set<K> |
keySet()
Gibt ein Set über die Keys zurück
|
boolean |
remove(java.lang.Object key,
java.lang.Object value)
Löscht einen Eintrag
|
java.util.Collection<V> |
removeAll(java.lang.Object key)
Löscht alle Einträge eines Keys
|
int |
size()
Gibt die Anzahl der gespeicherten Werte (Values) zurück
|
java.lang.String |
toString() |
java.util.List<V> |
values()
Gibt eine Liste über alle values zurück.
|
java.util.Set<V> |
valueSet()
Gibt ein Set über alle values zurück.
|
public static final int HASHSET_THRESHOLD
public HashBagMap()
Erstellt eine HashBagMap, die zu einem Key mehrere Values speichert, und für die Speicherung der Values ein Set
verwendet, sodass pro Key jedes Objekt nur einmal gespeichert wird.
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.
useSet
- ob ein Set verwendet werden sollpublic HashBagMap(int initialCapacity)
Erstellt eine HashBagMap, die zu einem Key mehrere Values speichert, und für die Speicherung der Values ein Set
verwendet, sodass pro Key jedes Objekt nur einmal gespeichert wird.
initialCapacity
- Initiale Key-Kapazitätpublic 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.
useSet
- ob ein Set verwendet werden sollinitialCapacity
- Initiale Key-Kapazitätpublic int size()
Gibt die Anzahl der gespeicherten Werte (Values) zurück
public boolean isEmpty()
Gibt true zurück, wenn keine Werte gespeichert sind
public boolean contains(java.lang.Object o)
Gibt true zurück, wenn ein Objekt vom Typ Map.Entry enthalten ist, also hier dem Entry-Key mindestens das Entry-Value zugeordnet ist.
public boolean add(java.util.Map.Entry<K,V> entry)
Fügt einen Entry hinzu. Shortcut für add(entry.getKey(), entry.getValue()).
entry
- Entryadd(Object, Object)
public boolean containsKey(java.lang.Object key)
Gibt true zurück, wenn die Klasse zu diesem Key mindestens einen Wert enthält
key
- Keypublic boolean containsValue(java.lang.Object value)
Gibt true zurück, wenn dieser Wert mindestens einmal einem Key zugeordnet wurde
value
- Wertpublic java.util.Collection<V> get(K key)
Gibt die Collection mit Objekten zurück, die hinter diesem Key liegen
key
- Keypublic boolean add(K key, V value)
Fügt einem Key einen Wert hinzu
key
- Keyvalue
- Wertpublic boolean addAll(K key, java.util.Collection<? extends V> value)
Fügt einem Key mehrere Werte hinzu
key
- Keyvalue
- Wertepublic boolean remove(java.lang.Object key, java.lang.Object value)
Löscht einen Eintrag
key
- Keyvalue
- Wertpublic java.util.Collection<V> removeAll(java.lang.Object key)
Löscht alle Einträge eines Keys
key
- Keypublic void clear()
public java.util.Set<K> keySet()
Gibt ein Set über die Keys zurück
public java.util.List<V> 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.
public java.util.Set<V> valueSet()
Gibt ein Set über alle values zurück. Änderungen an der zurückgegeben Collection haben keine Auswirkungen auf die HashBagMap.
public java.util.Set<java.util.Map.Entry<K,java.util.Collection<V>>> entrySet()
Gibt ein Set über alle Einträge zurück
public java.lang.String toString()
toString
in class java.lang.Object
public java.util.Set<K> findKey(V value)
Findet Keys, die mindestens den angegeben Wert als Value haben
value
- Wertpublic java.util.Set<K> findKeys(java.util.Collection<V> values)
Findet Keys, die mindestens einen der angegebenen Werte als (nicht unbedingt einzigen) Value haben
values
- Wertepublic void addAll(HashBagMap<K,V> hashBagMap)