Map是java中的接口,Map.Entry是Map的一个内部接口。

Map提供了一些常用方法,如keySet()、entrySet()等方法。

keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。

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

import java.util.*;

public class Test{
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3"); //第一种:普遍使用,二次取值
System.out.println("通过Map.keySet遍历key和value:");
for (String key : map.keySet()) {
System.out.println("key= "+ key + " and value= " + map.get(key));
} //第二种
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
} //第三种:推荐,尤其是容量大时
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
} //第四种
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
for (String v : map.values()) {
System.out.println("value= " + v);
}
}
}

因为Map这个类没有继承Iterable接口所以不能直接通过map.iterator来遍历(list,set就是实现了这个接口,所以可以直接这样遍历),所以就只能先转化为set类型,用entrySet()方法,

其中set中的每一个元素值就是map中的一个键值对,也就是Map.Entry<K,V>了,然后就可以遍历了。

最新文章

  1. Python之路Day14--html
  2. canvas画布属性globalAlpha 和 createRadialGradient函数出现的设置问题
  3. ASPNET_MVC学习中的疑问
  4. 报错:org.eclipse.swt.SWTError: No more handles at org.eclipse.swt.SWT.error(SWT.java:4517)
  5. HDP2.4安装(五):集群及组件安装
  6. 【动态规划】 之最长公共子序列LCS
  7. IP Camera Something
  8. Delphi获取目录下所有文件名
  9. Dynamic Programming (DP) 问题总结
  10. java属性文件读取,属性修改
  11. hdu 5463 Clarke and minecraft(贪心)
  12. POJ 3675 Telescope 简单多边形和圆的面积交
  13. js模块开发
  14. Android JNI(NDK)开发总结
  15. Kingbase在初始化时遇到的错误
  16. 让asp.net网站支持多语言,使用资源文件
  17. java split方法
  18. vim 高亮
  19. python1113
  20. how-can-i-see-the-size-of-files-and-directories-in-linux

热门文章

  1. symfony2显示调试工具栏
  2. Java面向对象系列(12)- Static关键字讲解
  3. Matlab使用随记
  4. ubuntu系统执行生成密匙命令后,home目录下面没有生成.ssh目录
  5. javascript 关闭当前页面
  6. Charles抓包工具断点修改返回内容
  7. 检验appium环境是否正常:使用appium自动给手机安装app(注意:如果已存在该app,再执行会将原来的卸载再重装,需谨慎)
  8. 四种引用类型在Springboot中的使用
  9. Java程序的种类
  10. Python - __all__ 变量