Java遍历HashMap的两种方式

本文详细介绍了在Java中如何遍历Map集合的两种常见方法:通过keySet方法和通过Entry对象。首先,通过keySet方法,我们可以获取Map中所有key的集合,然后遍历这些key并使用get方法获取对应的value。其次,通过使用Map的entrySet方法,我们可以获取到所有Entry对象的集合,再遍历这些Entry对象,使用getKey和getValue方法分别获取键和值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过keySet方法

由于Map中的元素都是“key-value”形式的,且key值唯一。因此可以将所有的key值存放到一个集合中,通过遍历这个集合,就能得到所有的key,进而得到对应的value值。方法概述如下:

  1. 使用keySet方法将Map中的所有key取出来,存放到一个集合中;
  2. 对这个集合进行遍历(迭代器/增强for),得到每一个key;
  3. 使用Map中的get方法,得到每一个key值对应的value。

实现代码如下:

//创建HashMap
Map<String,Integer> mp = new HashMap();
mp.put("Zhangsan", 18);
mp.put("Lisi", 19);
mp.put("Wangwu", 21);
		
//通过keySet方法,将HashMap中的key提取出来,并放入一个集合set中
Set<String> set = mp.keySet();
//通过对这个set的迭代,结合get方法,对整个HashMap进行遍历
Iterator it = set.iterator();
while(it.hasNext())
{
	String str = (String)it.next();		//得到key
	System.out.println(str + ":" + mp.get(str));  //得到value
}

//或使用增强for循环遍历set
for(String x: mp.keySet())
{
		System.out.println(x + ":" + mp.get(x));
}

通过Entry对象

Entry对象是Map下面的一个类,以“key-value”形式存在,一个Map中存在若干个Entry对象。因此可以将Map中所有的Entry对象取出来,存放到集合中,再对这个集合进行遍历。具体实现步骤如下:

  1. 使用Map集合中的方法entrySet(),把Map中的多个Entry对象取出来,存放到一个集合Set中;
  2. 遍历这个Set集合,得到每一个Entry对象;
  3. 通过Entry对象的getKey()和getValue()方法获取键和值。

实现代码如下:

//创建HashMap
Map<String,Integer> mp = new HashMap();
mp.put("Zhangsan", 18);
mp.put("Lisi", 19);
mp.put("Wangwu", 21);
//通过Map集合的entrySet方法,将Map中的所有Entry对象取出来,存放到一个集合set2中
Set<Map.Entry<String, Integer>> set2 = mp.entrySet();
//使用set2集合,对每一个Entry对象进行遍历
Iterator<Map.Entry<String, Integer>> it2 = set2.iterator();
while(it2.hasNext())
{
	Map.Entry<String, Integer> entry = it2.next();
	//使用getKey()和getValue()方法得到键和值
	String str = entry.getKey();
	Integer num = entry.getValue();
	System.out.println(str + " " + num);
}
		
for(Map.Entry<String, Integer> entry: set2)
{
	String str = entry.getKey();
	Integer num = entry.getValue();
	System.out.println(str + " " + num);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值