java - हैश मैप से कुंजियों की सूची कैसे लौटाएं?




hashmap (2)

मैं वर्तमान में एक कार्यक्रम बनाने की कोशिश कर रहा हूं जो क्रियाओं को स्पेनिश में संयोजित करता है। मैंने एक हैश टेबल बनाया है जिसमें एक कुंजी है और ऑब्जेक्ट वर्ब का तात्कालिकता है। कुंजी एक स्ट्रिंग है जिसमें क्रिया का असीम रूप होता है (उदाहरण के लिए, "हैबर")। यह वह कोड है जो मेरे पास अब तक हैश मैप के लिए है:

public class VerbHashMap {

    HashMap<String, Verb> verbHashMap;

    public VerbHashMap(){
        verbHashMap = new HashMap();
    }   
}

HashMap में प्रत्येक क्रिया की कुंजी क्रिया के असीम रूप पर आधारित होती है। उदाहरण के लिए, स्ट्रिंग "हबलर" एक स्पेनिश क्रिया की कुंजी है। वर्ग Verb में getInfinitive () नामक एक विधि है जो एक स्ट्रिंग देता है जिसमें क्रिया का असीम रूप होता है।

public boolean addVerb(Verb verb){
    if(verbHashMap.containsValue(verb.getInfinitive()){
        return false;
    }
    else{
        verbHashMap.put(verb.getInfinitive(), verb);
        return true;
    }
}

प्रश्न यह है कि एक विधि बनाने के लिए सबसे कुशल तरीका क्या है जो वर्णमाला क्रम में हैश मैप में सभी क्रियाओं की सूची देता है? क्या मुझे एक एरेलेस्ट की विधि वापस करनी चाहिए जिसमें हैश मैप में सभी वस्तुओं की कुंजी शामिल है? या इस बारे में जाने के लिए एक बहुत अधिक कुशल तरीका है?


किसी Map की सभी कुंजियों के साथ सेट को वापस करने के लिए keySet() विधि का उपयोग करें।

यदि आप अपने मानचित्र को क्रमबद्ध रखना चाहते हैं, तो आप TreeMap उपयोग कर सकते हैं।


map.keySet() का उपयोग करके, आप चाबियों का एक सेट प्राप्त कर सकते हैं। फिर इस सेट को List में List :

List<String> l = new ArrayList<String>(map.keySet());

और फिर कुंजियों तक पहुँचने के लिए l.get(int) विधि का उपयोग करें।

PS: - source- सबसे संक्षिप्त तरीका एक सेट <स्ट्रिंग> को सूची <स्ट्रिंग> में कनवर्ट करने के लिए





hashmap