Class AliasMap<K,V,A>
java.lang.Object
java.util.AbstractMap<K,V>
java.util.HashMap<K,V>
org.nuiton.util.AliasMap<K,V,A>
- All Implemented Interfaces:
Serializable, Cloneable, Map<K,V>
Une map base sur une HashMap qui permet pour une valeur d'ajouter d'autres
cles. Cette nouvelle cle est un alias, un alias peut-etre utilise pour
plusieurs valeurs. Si l'on demande la valeur associe a un Alias, cela
retourne une liste contenant toutes les valeurs pour lequel cette Alias est
utilise.
Cela permet de stocker des objets avec une cle principale et unique, puis
avec des alias.
Et ainsi recherche les valeurs qui ont un ensemble d'alias via la methode
getValueAlias(Object[]) ou supprimer les valeurs qui
ont un ensemble d'Alias en commun via la methode removeValue(A...)
Si la cle ne vous importe que peu, vous pouvez par exemple utiliser
UUID.randomUUID() pour generer une cle unique.- Since:
- 3.6.9
- Author:
- Benjamin Poussin - poussin@codelutin.com
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class AbstractMap
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K, V> -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionRetourne la liste d'alias associee avec une clegetKeyAlias(A... alias) Retoure les cles en commun de tous les alias.getValueAlias(A... alias) Retoure les valeurs en commun de tous les alias.Ajoute une valeur dans la map avec un ensemble d'alias associeprotected voidAjoute des alias a une cleRetire une cle ainsi que tous ses aliasvoidremoveAlias(A... alias) Supprime des alias quelque soit leur cleremoveValue(A... alias) Supprime toutes les valeurs et leur cle associe aux aliasMethods inherited from class HashMap
clear, clone, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, forEach, get, getOrDefault, isEmpty, keySet, merge, newHashMap, put, putAll, putIfAbsent, remove, replace, replace, replaceAll, size, valuesMethods inherited from class AbstractMap
equals, hashCode, toString
-
Field Details
-
aliases
-
keys
-
-
Constructor Details
-
AliasMap
public AliasMap()
-
-
Method Details
-
put
-
putAlias
-
getKeyAlias
Retoure les cles en commun de tous les alias. Les cles retournees sont celle qui ont tous les alias.K1: a, b, c K2: b, c, d K3: c, d, e getKeyAlias(a, b, c) retourne [K1] getKeyAlias(b, c) retourne [K1, K2] getKeyAlias(c) retourne [K1, K2, K3] getKeyAlias(d) retourne [K2, K3] getKeyAlias(z) retourne []
- Parameters:
alias- FIXME- Returns:
- une liste vide si aucune valeur ne correspond au alias en argument
-
getValueAlias
Retoure les valeurs en commun de tous les alias. Les valeurs retournees sont celle qui ont tous les alias.V1: a, b, c V2: b, c, d V3: c, d, e getKeyAlias(a, b, c) retourne [V1] getKeyAlias(b, c) retourne [V1, V2] getKeyAlias(c) retourne [V1, V2, V3] getKeyAlias(d) retourne [V2, V3] getKeyAlias(z) retourne []
- Parameters:
alias- FIXME- Returns:
- une liste vide si aucune valeur ne correspond au alias en argument
-
getAlias
Retourne la liste d'alias associee avec une cleK1: a, b, c K2: b, c, d K3: c, d, e getAlias(K1) retourne [a, b, c] getAlias(k3) retourne [c, d, e] getKeyAlias(k9) retourne []
- Parameters:
key- FIXME- Returns:
- FIXME
-
remove
-
removeValue
Supprime toutes les valeurs et leur cle associe aux aliasK1: a, b, c K2: b, c, d K3: c, d, e removeValue(b, c) il reste K3: [c, d, e]
- Parameters:
alias- FIXME- Returns:
- la liste de valeur qui a ete supprime de la map
-
removeAlias
Supprime des alias quelque soit leur cleK1: a, b, c K2: b, c, d K3: c, d, e removeAlias(a, b) alors K1: [c], k2: [c, d], k3: [c, d, e] removeAlias(c) alors K1: [a, b], k2: [b, d], k3: [d, e] getKeyAlias(z) alors rien ne change car cette alias n'existe pas
- Parameters:
alias- FIXME
-