आप LinkedHashMap
को कैसे घटा सकते हैं? मैं removeEldestEntry
विधि को ओवरराइड करता हूं, लेकिन यह विधि केवल तभी कॉल की जाती है जब कोई नया मान डाला जाता है। तो मानचित्र को इस तरह से छोटा बनाने में कोई बदलाव नहीं है।जावा में लिंक्ड हैशैप हटाना
LinkedHashMap
केवल मेरे एक सामान्य Iterator
देता है और किसी भी removeLast
या listIterator
विधि नहीं है, तो आप पिछले, का कहना है कि 1000, प्रविष्टियों की खोज और उन्हें हटा सकता हूँ?
एकमात्र तरीका जिसे मैं सोच सकता हूं वह पूरी चीज के माध्यम से चल रहा है। लेकिन इसमें उम्र लग सकती है ...
हर बार जब मैं केवल कुछ तत्वों को हटाना चाहता हूं तो एक नया नक्शा बनाना भी स्मृति को नष्ट कर देगा।
शायद Iterator
के पहले मानों को हटाएं और फिर उन्हें फिर से सम्मिलित करें, removeEldestEntry
विधि में कम हो गया था। फिर पुनर्वितरण सबसे पुराना मूल्य निकाल देगा। यह बहुत बदसूरत कोड है ... कोई बेहतर विचार?
संपादित करें: पुनरावृत्ति आदेश सबसे पुराना सबसे पुराना है। तो यह आसान है