में impl मुझे डर है कि यह एक सच में बेवकूफ सवाल है, लेकिन यहाँ जाता है:स्पष्ट() जावा के LinkedList
क्यों जावा के डिफ़ॉल्ट LinkedList कार्यान्वयन में स्पष्ट विधि सूची चलना और सभी नोड्स घृणाजनक परेशान करता है? क्यों न केवल शीर्षलेख को अनदेखा करें और शेष सूची को छोड़ दें - जीसी इसे वैसे भी प्राप्त करेगी, नहीं?
/**
* Removes all of the elements from this list.
*/
public void clear() {
Entry<E> e = header.next;
while (e != header) {
Entry<E> next = e.next;
e.next = e.previous = null;
e.element = null;
e = next;
}
header.next = header.previous = header;
size = 0;
modCount++;
}
यह क्यों चलना:
यहाँ विधि है? क्यों न केवल header.next = header.previous = header;
पर जाएं?
सबसे अच्छा मैं समझ सकता हूं कि यह जीसी की मदद करता है ...? यह लिंक http://java.sun.com/docs/books/performance/1st_edition/html/JPAppGC.fm.html#997442 प्रकार का सुझाव देता है कि।
TIA ...
मैं असहमत होने के लिए तैयार था, कह रहा था कि बाहरी कोड को लिंक्डलिस्ट $ एंट्री का संदर्भ प्राप्त करने का कोई तरीका नहीं है ... लेकिन अप्रत्यक्ष रूप से लिंक्डलिस्ट $ ListItr के माध्यम से आप निश्चित रूप से कर सकते हैं ... धन्यवाद और अच्छी पकड़! – overthink
एक नोड पकड़ेगा क्या होगा? एक इटरेटर या सबलिस्ट, लेकिन ये वैध नहीं होंगे, इसलिए ध्यान रखने के बारे में नहीं। –
@ टॉम: यदि आपने ऐसा नहीं किया है तो उपसूची और इटरेटर काम करना जारी रखेंगे, लेकिन संग्रह ढांचा विफल होने की कोशिश करता है (लेकिन इसकी गारंटी नहीं देता है)। –