मुझे कुछ व्यवहार दिखाई दे रहा है कि मैं काफी समझ नहीं पा रहा हूं और सोच रहा था कि अगर कोई यहां पर क्या हो रहा है, यह समझाने के लिए पर्याप्त दयालु होगा। यह वर्तमान में मेरे पास कोड है।मैं गलत ArrayList से तत्व को क्यों हटा रहा हूं?
public class MyClass {
ArrayList<String> myList = new ArrayList<String>();
public MyClass() {
populate();
removeData(myList);
}
private void populate() {
myList.add("Some data");
myList.add("Some more data");
myList.add("Even more data");
}
private void removeData(ArrayList<String> list) {
ArrayList<String> temp = new ArrayList<String>();
temp = list;
temp.remove("Some data");
}
}
अब किसी कारण से, के बाद मैं इस कोड को चलाने के लिए, डेटा ArrayList "MyList" से हटाया जा रहा है। यह क्यों हो रहा है, भले ही मुझे केवल "removeData" विधि के अंदर एक चर से डेटा निकालना है और "myList" फ़ील्ड से नहीं?
लेकिन आप सौंपा 'अस्थायी = list' तो मूल रूप से एक ही वस्तु के संदर्भ – ochi
ओर इशारा करते हैं जावा आवंटित वस्तु का जिक्र किया जाएगा जिक्र कर रहे थे संदर्भ, आपको जावा और ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग मूल बातें –
के बारे में और अधिक पढ़ने की आवश्यकता है क्योंकि templist = mylist templist पर मेरी सूची का संदर्भ दे रहा है। इसलिए जो कुछ भी आप टेम्पलिस्ट पर करते हैं वह मेरी सूची को प्रभावित करेगा। –