java - একটি হ্যাশম্যাপ মাধ্যমে ডুবাতে




loops hashmap (5)

সম্ভাব্য ডুপ্লিকেট:
কিভাবে একটি মানচিত্রে প্রতিটি এন্ট্রি দক্ষতার পুনরাবৃত্তি করবেন?

একটি HashMap আইটেম উপর পুনরাবৃত্তি করার সেরা উপায় কি?


আপনি বিভিন্ন উপায়ে একটি Map এন্ট্রি মাধ্যমে পুনরাবৃত্তি করতে পারেন। এই মত প্রতিটি কী এবং মান পান:

Map<?,?> map = new HashMap<Object, Object>();
for(Entry<?, ?> e: map.entrySet()){
    System.out.println("Key " + e.getKey());
    System.out.println("Value " + e.getValue());
}

অথবা আপনি কী দিয়ে তালিকা পেতে পারেন

Collection<?> keys = map.keySet();
for(Object key: keys){
    System.out.println("Key " + key);
    System.out.println("Value " + map.get(key));
}

আপনি যদি কেবলমাত্র সমস্ত মান পেতে চান এবং কীগুলির সাথে সংশ্লিষ্ট না হন তবে আপনি এটি ব্যবহার করতে পারেন:

Collection<?> values = map.values();

এন্ট্রি entrySet() মাধ্যমে entrySet() :

public static void printMap(Map mp) {
    Iterator it = mp.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry pair = (Map.Entry)it.next();
        System.out.println(pair.getKey() + " = " + pair.getValue());
        it.remove(); // avoids a ConcurrentModificationException
    }
}

Map সম্পর্কে আরও পড়ুন।


নির্ভর করে। আপনি যদি জানেন যে আপনার কী কী এবং প্রতিটি entrySet মান উভয়টির প্রয়োজন হবে তবে এন্ট্রি entrySet দিয়ে যান। যদি আপনার মানগুলির প্রয়োজন হয়, তবে values() পদ্ধতি আছে। এবং যদি আপনার কেবল কীগুলি দরকার হয় তবে keyset() ব্যবহার করুন।

একটি খারাপ অনুশীলন সমস্ত কীগুলির মাধ্যমে পুনরাবৃত্তি করা হবে এবং তারপরে লুপের মধ্যে মানটি পেতে map.get(key) সর্বদা করা হবে। যদি আপনি এটি করছেন, তবে আমি যে প্রথম বিকল্পটি লিখেছি তা আপনার জন্য।


যদি আপনি শুধুমাত্র কীগুলিতে আগ্রহী হন তবে আপনি মানচিত্রের keySet() এর মাধ্যমে পুনরাবৃত্তি করতে পারেন:

Map<String, Object> map = ...;

for (String key : map.keySet()) {
    // ...
}

আপনি শুধুমাত্র মান প্রয়োজন হলে, values() ব্যবহার করুন:

for (Object value : map.values()) {
    // ...
}

অবশেষে, যদি আপনি কী এবং মান উভয়ই চান তবে entrySet() ব্যবহার করুন:

for (Map.Entry<String, Object> entry : map.entrySet()) {
    String key = entry.getKey();
    Object value = entry.getValue();
    // ...
}

এক সতর্কতা: যদি আপনি মধ্য-পুনরাবৃত্তির আইটেমগুলি সরাতে চান তবে আপনাকে ইটারেটারের মাধ্যমে এটি করতে হবে (দেখুন karim79 এর উত্তর দেখুন )। যাইহোক, আইটেম মান পরিবর্তন করা ঠিক আছে ( Map.Entry )।


for (Map.Entry<String, String> item : params.entrySet()) {
    String key = item.getKey();
    String value = item.getValue();
}




iteration