概述
通过keySet方法
由于Map中的元素都是“key-value”形式的,且key值唯一。因此可以将所有的key值存放到一个集合中,通过遍历这个集合,就能得到所有的key,进而得到对应的value值。方法概述如下:
- 使用keySet方法将Map中的所有key取出来,存放到一个集合中;
- 对这个集合进行遍历(迭代器/增强for),得到每一个key;
- 使用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对象取出来,存放到集合中,再对这个集合进行遍历。具体实现步骤如下:
- 使用Map集合中的方法entrySet(),把Map中的多个Entry对象取出来,存放到一个集合Set中;
- 遍历这个Set集合,得到每一个Entry对象;
- 通过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);
}
最后
以上就是忧虑毛衣为你收集整理的Java遍历HashMap的两种方式的全部内容,希望文章能够帮你解决Java遍历HashMap的两种方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复