第四章 如何在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
-----------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wwwarewow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值