2012-10-01 23 views
5

मेरे पास एक नक्शा ऑब्जेक्ट है जो <Id, String> स्टोर करता है जहां आईडी एक संपर्क आईडी है, और स्ट्रिंग एक जेनरेट किया गया ईमेल संदेश है।मैं लूप के लिए शीर्ष पर कुंजी के साथ-साथ मूल्य कैसे प्राप्त कर सकता हूं?

मैंने मानचित्र के माध्यम से सफलतापूर्वक looped किया है और नक्शे के माध्यम से मूल्यों (स्ट्रिंग भाग) को खींचने में सक्षम हैं।

मैं जो करने में सक्षम होना चाहता हूं वह भी है जब मैं मूल्य पकड़ता हूं तो कुंजी पकड़ लेता है। अधिकांश भाषाओं में यह करना बहुत आसान है, लेकिन मुझे यह पता लगाना प्रतीत नहीं होता कि शीर्ष पर इसे कैसे किया जाए।

यह वही है मैं अभी है: पहले से

for(String key=>message : mailContainer.values()) 
{ 

    // This will return the contact Id 
    System.debug(key); 

    // This will return the message 
    System.debug(message); 

} 

धन्यवाद:

Map<Id,String> mailContainer = new Map<Id,String>{}; 

for(String message : mailContainer.values()) 
{ 

    // This will return my message as desired 
    System.debug(message); 

} 

मैं चाहते हैं क्या कुछ इस तरह है! मान के स्थान पर चाबियाँ पर

उत्तर

11

दोहराएं:

for (Id id : mailContainer.keySet()) 
{ 
    System.debug(id); 
    System.debug(mailContainer.get(id)); 
} 
+0

यह बहुत आसान है। मुझे विश्वास नहीं है कि मैंने कोशिश करने की कोशिश नहीं की थी। बहुत बहुत धन्यवाद! – VictorKilo

0

आप इसे नहीं मिल सकता है, क्योंकि यह मौजूद नहीं है। एपेक्स या तो कुंजी या मूल्यों पर पुनरावृत्ति की अनुमति देता है लेकिन संघों (कुंजी, मूल्य) नहीं।

+1

हालांकि आप कुंजी के माध्यम से लूप कर सकते हैं, और उसके बाद मान को पकड़ने के लिए उन चाबियों का उपयोग करें। एडम का जवाब यह पूरी तरह से दिखाता है। आप इस हद तक सही हैं कि मैं '(कुंजी, मान) 'पर पुन: सक्रिय नहीं हो सकता, लेकिन अभी भी एडम की विधि के साथ समान प्रभाव प्राप्त करना संभव है। – VictorKilo

0

क्या इसके लायक है के लिए, यहाँ एक और तरीका यह (थोड़ा अधिक शब्द) पूरा करने के लिए है ...

Map<id, string> myMap = Map<id, string>(); 

    set<id> keys = myMap.keySet(); 
    for (id k:keys) { 
     system.debug(k +' : '+ myMap.get(k)); 
    } 
संबंधित मुद्दे

 संबंधित मुद्दे