第四章 如何在java中迭代Map或HashMap


在这篇文章中,我们将看到如何在 Java 中迭代地图。有四种迭代地图的方法

  1. 使用 keyset() 并为每个循环(Java 5)
  2. 使用 keyset() 和 java 迭代器
  3. 使用 EntrySet() 并为每个循环(Java 5)
  4. 使用 EntrySet() 和 java 迭代器

如果在迭代时删除元素,则第一个和第三个选项将抛出 java.util.ConcurrentModificationException。

如果您了解HashMap 的内部工作,那么迭代 HashMap 可能会更容易

举个例子:

package org.arpit.java2blog;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;

public class IterateMapMain {

    public static void main(String args[])
    {
        // HashMap with Country as key and capital as value
        HashMap<String,String> countryCapitalMap=new HashMap<String,String>();
        countryCapitalMap.put("India","Delhi");
        countryCapitalMap.put("Japan","Tokyo");
        countryCapitalMap.put("France","Paris");
        countryCapitalMap.put("Russia","Moscow");

        // Iterating Using keySet() and for each loop
        System.out.println("Iterating Using keySet() and for each loop");
        for (String countryKey:countryCapitalMap.keySet()) {
            System.out.println("Country:"+ countryKey +" and  Capital:"+countryCapitalMap.get(countryKey));

        }
        System.out.println("-----------------------------");

        // Iterating Using keySet() and java iterator
        System.out.println("Iterating Using keySet() and java Iterator");
        Iterator countryKeySetIterator=countryCapitalMap.keySet().iterator();
        while(countryKeySetIterator.hasNext()){
            String countryKey=countryKeySetIterator.next();
            System.out.println("Country:"+ countryKey +" and Capital:"+countryCapitalMap.get(countryKey));
        }
        System.out.println("-----------------------------");

        // Iterating Using entrySet() and for each loop
        System.out.println("Iterating Using entrySet() and for each loop");
        for (Entry<String,String> entry:countryCapitalMap.entrySet()) {
            System.out.println("Country:"+ entry.getKey() +" and  Capital:"+entry.getValue());

        }
        System.out.println("-----------------------------");

        // Iterating Using entrySet() and java iterator
        System.out.println("Iterating Using entrySet() and and java Iterator");
        Iterator<Entry<String,String>> entryIterator=countryCapitalMap.entrySet().iterator();
        while(entryIterator.hasNext())
        {
            Entry<String,String> entry=entryIterator.next();
            System.out.println("Country:"+ entry.getKey() +" and  Capital:"+entry.getValue());

        }
        System.out.println("-----------------------------");

    }

}

运行它,您将得到以下输出:

Iterating Using keySet() and for each loop
Country:France and  Capital:Paris
Country:Russia and  Capital:Moscow
Country:Japan and  Capital:Tokyo
Country:India and  Capital:Delhi
-----------------------------
Iterating Using keySet() and java Iterator
Country:France and Capital:Paris
Country:Russia and Capital:Moscow
Country:Japan and Capital:Tokyo
Country:India and Capital:Delhi
-----------------------------
Iterating Using entrySet() and for each loop
Country:France and  Capital:Paris
Country:Russia and  Capital:Moscow
Country:Japan and  Capital:Tokyo
Country:India and  Capital:Delhi
-----------------------------
Iterating Using entrySet() and and java Iterator
Country:France and  Capital:Paris
Country:Russia and  Capital:Moscow
Country:Japan and  Capital:Tokyo
Country:India and  Capital:Delhi
-----------------------------


原文链接:https://codingdict.com/