Seperti yang saya pahami, ada beberapa cara (mungkin yang lain juga) untuk membuat salinan dangkal a Map
di 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();
Apakah satu cara lebih disukai daripada yang lain, dan jika ya, mengapa?
Satu hal yang perlu disebutkan adalah bahwa cara kedua memberikan peringatan "Pemeran Tidak Dicentang". Jadi Anda harus menambahkan @SuppressWarnings("unchecked")
untuk menyiasatinya, yang sedikit menjengkelkan (lihat di bawah).
@SuppressWarnings("unchecked")
public Map<String, Object> getDataAsMap() {
// return a shallow copy of the data map
return (Map<String, Object>) ((HashMap<String, Object>) data).clone();
}