Soweit ich weiß, gibt es verschiedene Möglichkeiten (möglicherweise auch andere), eine flache Kopie von a Map
in Java zu erstellen :
Map<String, Object> data = new HashMap<String, Object>();
Map<String, Object> shallowCopy;
// first way
shallowCopy = new HashMap<String, Object>(data);
// second way
shallowCopy = (Map<String, Object>) ((HashMap<String, Object>) data).clone();
Wird ein Weg dem anderen vorgezogen, und wenn ja, warum?
Eine erwähnenswerte Sache ist, dass der zweite Weg eine "Unchecked Cast" -Warnung gibt. Sie müssen also etwas hinzufügen @SuppressWarnings("unchecked")
, um es zu umgehen , was ein wenig irritierend ist (siehe unten).
@SuppressWarnings("unchecked")
public Map<String, Object> getDataAsMap() {
// return a shallow copy of the data map
return (Map<String, Object>) ((HashMap<String, Object>) data).clone();
}