public class ObjIdMap<T>
extends java.lang.Object
LinkedHashMap<Long, T>
, unterstützt aber mehrere doppelte Keys. Grund:
jemand fragt beispielsweise mit DataModel.getObjects(long...)
folgendes Array ab:
[1,3,1,1,2]
Um für temporäre Operationen eine Map von dieser ID zu z. B. einem Systemobjekt anzulegen, darf die Anfrage nicht in [1,3,2]
reduziert
werden, weil dann der Anfrager falsche Ergebnisse erhält.
Daher bietet diese map eine Möglichkeit, die ursprüngliche Reihenfolge und evtl. Doppelungen beizubehalten. Die Methode put(long, Object)
aktualisiert immer alle Vorkommen einer ID.
Constructor and Description |
---|
ObjIdMap(java.util.List<java.lang.Long> ids)
Erstellt eine neue ObjIdMap
|
ObjIdMap(long[] ids)
Erstellt eine neue ObjIdMap
|
Modifier and Type | Method and Description |
---|---|
long[] |
getIds()
Gibt die IDs wieder zurück
|
void |
put(long id,
T value)
ordnet einer ID ein Objekt vom Typ T zu.
|
java.util.List<T> |
values()
Gibt die Werte zurück, die den ursprünglichen IDs zugeordnet wurden.
|
public ObjIdMap(java.util.List<java.lang.Long> ids)
ids
- IDs in Originalreihenfolgepublic ObjIdMap(long[] ids)
ids
- IDs in Originalreihenfolgepublic void put(long id, T value)
id
- IDvalue
- Wertpublic long[] getIds()
public java.util.List<T> values()