How can I remove an object of type X from a hashtable given one unique attribute of X in Java? -
मान लें कि मेरे पास एक क्लास व्यक्ति है
सार्वजनिक वर्ग व्यक्ति {int personID = 123; स्ट्रिंग fname = John; स्ट्रिंग lname = डो; } और मैंने एक हैशटेबल बनाया है (एक चाबी और मूल्य दोनों के रूप में व्यक्ति का उपयोग करना) अब, प्रत्येक व्यक्ति को एक अद्वितीय आईडी मानते हुए और मानना है कि हैशटेबल व्यक्तियों से भरा हुआ है, मैं चाहता हूं, एक अद्वितीय आईडी (इंट) दिया, उस आईडी से संबंधित हैशटेबल से व्यक्ति को निकालने के लिए।
समस्या क्या मानदंडों से हैशटेबल.remove () फ़ंक्शन देने के साथ उठता है क्योंकि यह किसी प्रकार के ऑब्जेक्ट को लेता है और इंट नहीं।
ध्यान दें: इस तथ्य को मान लें कि कुंजी और मान दोनों प्रकार के व्यक्ति हैं डिजाइन आवश्यकताएं और बदला नहीं जा सकता
संपादित करें: मैंने व्यक्ति वर्ग के हैशोड () और बराबर () पद्धति को ओवरराइड कर दिया है, वे दोनों व्यक्ति आईडी पर निर्भर करते हैं। लेकिन मैं अभी भी नहीं जानता कि क्या हैशटेबल.रेखा () पद्धति को पास करना है क्योंकि यह प्रकार व्यक्ति को लेता है और मैं उपयोगकर्ता-दिए गए इंट (जो व्यक्ति आईडी है) के आधार पर निकालना चाहता हूं
अगर आपने व्यक्ति आईडी पर आधारित अपने समतुल्य () और हैशोड () पद्धति को ओवरराइड किया है, तो आपको केवल व्यक्ति आईडी के साथ एक व्यक्ति ऑब्जेक्ट बनाना चाहिए
मान लें कि आप 123 व्यक्ति आईडी खोजना चाहते हैं।
आप व्यक्ति p = new person () कर सकते हैं; P.personID = 123; P.fName = "XYZ"; P.lName = "एबीसी"; myHashtable.remove (पी); जैसा कि बराबर () और हैशोड () personID पर आधारित हैं। तो तालिका व्यक्ति आईडी के आधार पर खोज / निकालेगी
Comments
Post a Comment