java - Get Hashset Key -


  आयात करें java.util.HashMap; आयात करें java.util.HashSet; आयात करें java.util.Map; Import java.util.Set; सार्वजनिक स्थिर शून्य प्रिंट न्यूमेटेड खोज (हैशमैप & lt; स्ट्रिंग, पूर्णांक & gt; vocab, हैशसेट & lt; स्ट्रिंग & gt; शब्दकोश) {हैशमैप & lt; स्ट्रिंग, पूर्णांक & gt; गठबंधन = नया हैशमैप & lt; स्ट्रिंग, पूर्णांक & gt; (); इटरेटर iterVoc = vocab.entrySet ()। Iterator (); सूची के & lt; स्ट्रिंग & gt; डिक = नया अर्रेलिस्ट & lt; स्ट्रिंग & gt; (); Int i = 0; डबल वास्तविक = 0.0; डबल टोकन = 0.0; जबकि (iterVoc.hasNext ()) {map.Entry iterVocE = (मानचित्र.इंटर्री) iterVoc.next (); अगर (शब्दकोश केंन्टेन्ट्स (आईटीआरवीसीई.के.के.के.) (toString ())) {int value = (int) iterVocE.getValue (); वास्तविक + = 1; टोकन + मान =; Combine.put (iterVocE.getKey ()। ToString (), मान); }} के लिए (स्ट्रिंग एस: शब्दकोश। केसेसेट ()) {यदि (कॉम्बिनेशन कैंटेन्स (शब्दकोश.गेट्स) .स्टस्ट्रिंग ())) {System.out.println ("डिक्वॉर्डेड" + शब्दकोश। गेट्स) "(गिनो" + कम्बाइन। गेट (शब्दकोश। गेट्स) + ")"); }}}  

मैं एक हैशसेट के माध्यम से पुनरावृत्त करने की कोशिश कर रहा हूं और मुझे अपने .get () विधि से संबंधित त्रुटियां मिलती हैं। हाशसेट में आप कुंजी कैसे प्राप्त कर सकते हैं?

एक हैशसेट को एक हैशमैप द्वारा समर्थित किया गया है। मैं यह सबसे पहले उल्लेख करना चाहता हूं, क्योंकि जो मानुती ने कहा वह बिल्कुल सही नहीं है। एक हैशसेट में एक कुंजी है; आप स्पष्ट रूप से हाशसेट के बाहर की कुंजी के बारे में नहीं जानते (या बजाए आप इसे कुंजी नहीं कहते हैं, तो आप इसे हाशसेट के बाहर मान कहते हैं)।

वास्तव में, कुंजी आंतरिक हाशमप हैशएससेट # एड (ई) में उपयोग किए जाने वाला मान है। HashSet # add (E) के लिए कोड:

  सार्वजनिक बूलियन जोड़ें (ई ई) {return map.put (ई, वर्तमान) == नल; }  

जहां वर्तमान मूल्य के लिए सिर्फ एक डमी ऑब्जेक्ट है:

  निजी स्थिर अंतिम ऑब्जेक्ट PRESENT = नया ऑब्जेक्ट ();  

आप क्या करना चाहते हैं, हैशसेट को सभी चाबियों पर पुनरावृति के लिए इटरेटर कहते हैं प्रति java.util.HashSet # iterator प्रलेखन:

इस सेट के तत्वों पर एक इटरेटर लौटाता है। तत्व किसी विशेष क्रम में वापस नहीं आते हैं।

तो यह आंतरिक हाशम प्राप्त करने के बराबर हैशैप # कुंजीसेट मिल रहा है, और उसके बाद उस पर इटरेटर मिल रहा है। ऐसा नहीं है कि यह मायने रखता है, लेकिन यह वास्तव में हैशसैट का आंतरिक कोड वास्तव में ऐसा कैसे करता है:

  सार्वजनिक इटरेटर & lt; E & gt; इटरेटर () {return map.keySet ()। Iterator (); }  

ताकि आप की तुलना में थोड़ा अधिक स्पष्टीकरण हो, लेकिन आपकी समस्या के लिए: कोई हैशसेट # फ़ंक्शन नहीं है, कोई हैशसेट नहीं है #सेटसेट फ़ंक्शन, कोई नहीं है हैशमैप # फ़ंक्शन है, इसलिए मैं आपको किसी भी आगे जाने से पहले हाशट दस्तावेज़ीकरण और हैशमैक्स दस्तावेज के माध्यम से पढ़ने की सलाह देता हूं। संदेह में, दस्तावेज़ीकरण पढ़ें। जावा में आपके पास एपीआई से निपटने का अनूठा लाभ है जो बहुत अच्छी तरह से प्रलेखित है। यदि आप इसका उपयोग नहीं करना चाहते हैं, तो इसके व्यर्थ हैं।

एक हैशसेट से बाहर "कुछ भी" प्राप्त करने के लिए आपको उस ऑब्जेक्ट के साथ एक ही हैश कोड का परिणाम होगा ... तो मैं यकीन नहीं है कि मैं जो कुछ कर रहा हूं, उसके लिए मैं काफी तर्क समझता हूं। दूसरे शब्दों में, यदि आपके पास पहले से ऑब्जेक्ट है, तो आपको इसे हाशसेट से प्राप्त करने की आवश्यकता नहीं है।

फिर भी, आपके कोड की अंतिम 6 पंक्तियों को इस पर बदला जा सकता है:

< पूर्व> के लिए (स्ट्रिंग्स: शब्दकोश। शब्दकोष ()) {यदि (कॉम्बिनेशन कन्टेन्स की (एस)) {System.out.println ("डिक्वॉर्डेड" + "+ (गिनो" + कम्बाइन। गेट्स) + ")"); }}

Comments

Popular posts from this blog

c# - SignalR: "Protocol error: Unknown transport." when navigating to hub -

class - Kivy: how to instantiate a dynamic classes in python -

python - mayavi mapping a discrete colorbar on a surface -