前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1.6 Java遍历Map集合[通俗易懂]

1.6 Java遍历Map集合[通俗易懂]

作者头像
Java架构师必看
发布2022-04-21 08:10:34
6850
发布2022-04-21 08:10:34
举报
文章被收录于专栏:Java架构师必看

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说1.6 Java遍历Map集合[通俗易懂],希望能够帮助大家进步!!!

Java遍历Map集合的四种方式

Map 集合的遍历与 List 和 Set 集合不同。Map 有两组值,因此遍历时可以只遍历值的集合,也可以只遍历键的集合,也可以同时遍历。Map 以及实现 Map 的接口类(如 HashMap、TreeMap、LinkedHashMap、Hashtable 等)都可以用以下几种方式遍历。

1)在 for 循环中使用 entries 实现 Map 的遍历(最常见和最常用的)。

代码语言:javascript
复制
 import java.util.HashMap;
import java.util.Map;

public class Test { 
   
	public static void main(String[] args) { 
   
		Map<String,String> map=new HashMap<String,String>();
		map.put("父亲", "奥特曼之父");
		map.put("母亲", "奥特曼之母");
		map.put("儿子", "奥特曼之子");
		
		//entrySet():返回 Map 集合中所有键-值对的 Set 集合,此 Set 集合中元素的数据类型为 Map.Entry
		for(Map.Entry<String, String> entry:map.entrySet()){ 
   
			String mapKey=entry.getKey();
			String mapValue=entry.getValue();
			System.out.println(mapKey+","+mapValue);
		}
	}
}

运行结果:

代码语言:javascript
复制
父亲,奥特曼之父
母亲,奥特曼之母
儿子,奥特曼之子

2)使用 for-each 循环遍历 key 或者 values,一般适用于只需要 Map 中的 key 或者 value 时使用。性能上比 entrySet 较好。

代码语言:javascript
复制
import java.util.HashMap;
import java.util.Map;

public class Test { 
   
	public static void main(String[] args) { 
   
		Map<String,String> map=new HashMap<String,String>();
		map.put("队长", "心脏病");
		map.put("队员一", "冠心病");
		map.put("队员二", "失心病");
		
		//打印键集合
		for(String key:map.keySet()){ 
   
			System.out.println(key);
		}
		
		//打印值集合
		for(String value:map.values()){ 
   
			System.out.println(value);
		}
	}
}

运行结果:

代码语言:javascript
复制
队长
队员一
队员二
心脏病
冠心病
失心病

3)使用迭代器(Iterator)遍历

Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。

代码语言:javascript
复制
public class Test { 
   
	public static void main(String[] args) { 
   
		Map<String,String> map=new HashMap<String,String>();
		map.put("队长", "心脏病");
		map.put("队员一", "冠心病");
		map.put("队员二", "失心病");
		
		Iterator<Entry<String,String>> entries=map.entrySet().iterator();
		while(entries.hasNext()){ 
   
			Entry<String,String> entry=entries.next();
			String key=entry.getKey();
			String value=entry.getValue();
			System.out.println(key+","+value);
		}
	}
}

运行结果:

代码语言:javascript
复制
队长,心脏病
队员一,冠心病
队员二,失心病

4)通过键找值遍历,这种方式的效率比较低,因为本身从键取值是耗时的操作。

代码语言:javascript
复制
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

public class Test { 
   
	public static void main(String[] args) { 
   
		Map<String,String> map=new HashMap<String,String>();
		map.put("队长", "心脏病");
		map.put("队员一", "冠心病");
		map.put("队员二", "失心病");
		
		for(String key:map.keySet()){ 
   
			String value=map.get(key);
			System.out.println(key+":"+value);
		}
	}
}
代码语言:javascript
复制
队长:心脏病
队员一:冠心病
队员二:失心病
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-202,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java遍历Map集合的四种方式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档