Як я розумію, існує декілька способів (можливо, і інших) для створення дрібної копії Map
Java на Java:
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();
Чи є один із способів кращим перед іншим, і якщо так, то чому?
Одне, що варто згадати, - це те, що другий спосіб дає попередження "Неперевірений ролик". Тож вам доведеться додати, @SuppressWarnings("unchecked")
щоб обійти його, що трохи дратує (див. Нижче).
@SuppressWarnings("unchecked")
public Map<String, Object> getDataAsMap() {
// return a shallow copy of the data map
return (Map<String, Object>) ((HashMap<String, Object>) data).clone();
}