TreeSet
में एक निर्माता है जो एक तुलनित्र लेता है, जिसका अर्थ है कि यदि आपके द्वारा संग्रहीत वस्तुओं Comparable
ऑब्जेक्ट्स स्वयं नहीं हैं, तो आप एक कस्टम तुलनित्र प्रदान कर सकते हैं।हैशसेट/हैश मैप (कस्टम हैशर) के लिए ट्रीसेट/ट्रीमैप समतुल्य
क्या कोई गैर-निर्धारित सेट का एक समान कार्यान्वयन है? (जैसे कि एक "क़मी बनाने की मशीन" उद्देश्य यह है कि equals()
और hashCode()
वस्तुओं टी है कि वस्तुओं के अपने कार्यान्वयन से अलग हो सकता? के लिए गणना करता है लेता है HashSet<T>
के लिए एक विकल्प)
सी ++ std::hash_set
, तो आप इस देता है बस हो, तो जावा के लिए कुछ सोच ।
संपादित करें: @Max equals()
के बारे में एक अच्छा तकनीकी बिंदु को लाता है - निष्पक्ष पर्याप्त; और TreeMap
और HashMap
कुंजी Map.containsKey()
के माध्यम से यह सच है। लेकिन क्या वहां अन्य प्रसिद्ध डेटा संरचनाएं हैं जो कस्टम हैशर्स द्वारा संगठन की अनुमति देती हैं?
वैसे, क्या आप वाकई अलग वस्तु डोमेन मिश्रण नहीं कर रहे हैं कर रहे हैं? आम तौर पर आपको अपने आवेदन के डोमेन में मौजूद वस्तुओं में नई विधियों को जोड़ने की कोई समस्या नहीं है। यदि, हालांकि आप कुछ जेनरेट किए गए एक्सिस क्लाइंट (उदाहरण के लिए) से प्राप्त ऑब्जेक्ट्स का नक्शा बनाने का प्रयास कर रहे हैं, तो आप विभिन्न डोमेन - वेब सेवा के डोमेन और आपके एप्लिकेशन के डोमेन को मिश्रित कर रहे हैं। जिसका अर्थ है, संक्षेप में आपको जो भी मांगना है उसकी आवश्यकता नहीं होनी चाहिए। – bezmax