2010-07-27 14 views

उत्तर

16
साथ for-each loop

, पुनरावृत्ति मूल्यों के लिए पुनरावृत्ति चाबी के लिए Map.keySet(), Map.values() और Map.entrySet() का उपयोग कुंजी/मान जोड़े पुनरावृत्ति के लिए।

ध्यान दें कि ये सभी नक्शा के लिए सीधे विचार हैं जिनका उपयोग उन्हें प्राप्त करने के लिए किया गया था ताकि आप किसी भी तीन या मानचित्र में से कोई भी संशोधन स्वयं अन्य सभी को प्रतिबिंबित कर सकें।

1
hashmap.keySet().iterator() 

उपयोग एक for पाश यह दोहराना चाहते।

तो hashmap.get(item) का उपयोग व्यक्तिगत मूल्यों को पाने के लिए,

वैकल्पिक रूप से सिर्फ मानों के लिए एक इटरेटर प्राप्त करने के लिए entrySet() का उपयोग करें।

+1

या, "मूल्य", 'हैशपैप.वल्यूज()। Iterator() 'के माध्यम से किस पिंग का अर्थ है, के आधार पर। –

2
for (Map.Entry<T,U> e : map.entrySet()) 
{ 
    T key = e.getKey(); 
    U value = e.getValue(); 
    . 
    . 
    . 
} 

इसके अलावा, यदि आप कार्यान्वयन के रूप में एक LinkedHashMap उपयोग करते हैं, आप कुंजी/मान जोड़े डाला गया में पुनरावृति करेंगे। यदि यह महत्वपूर्ण नहीं है, तो हैश मैप का उपयोग करें।

+0

बहुत स्पष्ट जवाब, धन्यवाद –

21

हां, आप मानचित्र के entrySet() प्राप्त करके ऐसा करते हैं। उदाहरण के लिए:

Map<String, Object> map = new HashMap<String, Object>(); 

// ... 

for (Map.Entry<String, Object> entry : map.entrySet()) { 
    System.out.println("key=" + entry.getKey() + ", value=" + entry.getValue()); 
} 

(- इसके बाद के संस्करण कोड सिर्फ एक उदाहरण है बेशक, String और Object प्रकार है कि अपने विशेष Map है के साथ बदलें)।

2
public class abcd { 
    public static void main(String[] args) 
    { 
     Map<Integer, String> testMap = new HashMap<Integer, String>(); 
     testMap.put(10, "a"); 
     testMap.put(20, "b"); 
     testMap.put(30, "c"); 
     testMap.put(40, "d"); 
     for (Entry<Integer, String> entry : testMap.entrySet()) { 
      Integer key=entry.getKey(); 
      String value=entry.getValue(); 
     } 
    } 
} 
संबंधित मुद्दे