क्लोनिंग ConcurrentHashMap-जावा, क्लोन, ConcurrentHashMap

मैं क्यों क्लोन नहीं कर सकता ConcurrentHashMap?

ConcurrentHashMap<String, String> test = new ConcurrentHashMap<String, String>();
test.put("hello", "Salaam");

ConcurrentHashMap<String, String> test2 = (ConcurrentHashMap<String, String> ) test.clone();

System.out.println(test2.get("hello"));

अगर मैं उपयोग करता हूँ HashMap के बजाय ConcurrentHashMap, यह काम करता हैं।

उत्तर:

जवाब के लिए 5 № 1

The clone() पर विधि AbstractMap नकल के लिए मतलब नहीं है, यह एक आंतरिक तरीका है, संरक्षित खोजशब्द नोट ।

protected Object clone() throws CloneNotSupportedException {

HashMap होता है एक सार्वजनिक clone(), लेकिन इसका मतलब यह नहीं है कि आप इसे इस्तेमाल करना चाहिए, इस पर आगे चर्चा की है प्रभावी जावा: क्लोन () विधि का विश्लेषण

संग्रह की प्रतियां बनाने के लिए एक और अधिक लचीला तरीका कॉपी-भवन निर्माताओं के माध्यम से है ।ये किसी भी अंय से किसी भी नक्शे कार्यांवयन बनाने का लाभ है ।

/**
* Creates a new map with the same mappings as the given map.
*
* @param m the map
*/
public ConcurrentHashMap(Map<? extends K, ? extends V> m) {

जैसे

ConcurrentHashMap<String, String> original = new ConcurrentHashMap<String, String>();
original.put("hello", "Salaam");

Map<String, String> copy = new ConcurrentHashMap<>(original);
original.remove("hello");
System.out.println(copy.get("hello"));

संबंधित सवाल
सबसे लोकप्रिय