首先,回忆和练习一下HashMap的遍历
package Exercise.exercise;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set; public class Demo01 {
public static void main(String[] args) {
HashMap<String,String> hm=new
HashMap<>(); hm.put("赵又廷","高圆圆");
hm.put("邓超","孙俪");
hm.put("刘恺威","杨幂"); Set<String> set=hm.keySet(); // //调用keySet方法:set中存储的是所有的key
// Iterator<String> it=set.iterator();
//
// //取出set中所有的key,根据key来获取对应的value
// while (it.hasNext()){
// String key=it.next();
// String value=hm.get(key);
// System.out.println(key+" "+value);
// }
// for (String key:set){
String value=hm.get(key);
System.out.println(key+" "+value);
}
}
}

package test01.Map.Entry; /**
* public interface Map<k,v>{ //Map外部接口
* interface Entry<k,v>{ //Entry上的k,v随着Map上
* //k,v变化
* K getKey();
* V getValue(); //定义的两个抽象方法
* }
* }
* class A implements Map.Entry<k,v>{
* K key;
* V value;
*
* //重写方法
* public final K getKey(){
* return key;
* }
* public final V getValue(){
* return value;
* }
* //结论:Map.Entry中封装了key,value,并且封装了
* //获取key和value方法(getKey,getValue);
*
* //这个结论是通过分析源码得到的;
* }
*
*/
public class Demo02 {
public static void main(String[] args){
Map<String,String> hm=new HashMap<String,String>();
hm.put("邓超","孙俪");
        hm.put("赵又廷","高圆圆");
        hm.put("刘恺威","杨幂");
//利用entrySet来遍历
Set<Map.Entry<String,String>> set=hm.entrySet();
//迭代器方式遍历
/**
Iterator<Map.Entry<String,String>> me=it.next();
while(){
Map.Entry<String,String> me=it.next();
String key=me.getKey();
String value=me.getValue();
System.out.println(key+" "+value);
}
*/
//增强for来遍历
for(Map.Entry<String,String> me:set){
           String key=me.getKey();
String value=me.getValue();
System.out.println(key+" "+value);
         }
     }
}

说明:之所以用这样,是因为set可以直接用迭代器的方式,而Map这个不能直接用迭代器,因为set/list的父接口是Collection  ,而最后的根是Iterator,而Map不具备这个,所以要

打包到Set中,EntrySet这个接口对象类似,它是Map接口的接口,即内部接口,这个和内部类类似,自己多默写,多总结,多练习,熟能生巧;

Map.Entry的由来和使用的更多相关文章

  1. Map接口,Map.Entry,hashMap类,TreeMap类,WeakHashMap。

    Collection接口之前接触过,每次保存的对象是一个对象,但是在map中保存的是一对对象,是以key->value形式保存的. 定义: public interface Map<K,V ...

  2. java的Map及Map.Entry解析

    Map<K,V>是以键-值对存储的(key-value), 而Entry<K,V>是Map中的一个接口,Map.Entry<K,V>接口主要用于获取.比较 key和 ...

  3. java Map及Map.Entry详解

    Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法. keySet()方法返回值是Map中key值的集合:e ...

  4. Map.Entry用法示例

    一般在HashMap中可以通过key值得到value值,以key作为检索项.Map.Entry<K,V>可以作为条目的检索项.HashMap中有entrySet()方法,返回值是Set&l ...

  5. Map.Entry

    Map.Entry Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法,keySet()方法返回值是Map中 ...

  6. 另一种遍历Map的方式: Map.Entry 和 Map.entrySet()

    源网址: http://blog.csdn.net/mageshuai/article/details/3523116 今天看Think in java 的GUI这一章的时候,里面的TextArea这 ...

  7. The type java.util.Map$Entry cannot be resolved. It is indirectly referenced。。.相似的错误

    这个问题是出现一般都是因为JDK版本的问题.今天公司安装NC的时候就出现了这个问题.经过对错误的分析和猜测,将JDK从1.8i换成了1.7,之后就行了.根据我个人的猜测,可能是1.8以后就不支持Map ...

  8. Java—Map.Entry

    Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法. keySet()方法返回值是Map中key值的集合:e ...

  9. java Map及Map.Entry详解(转)

    Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法,keySet()方法返回值是Map中key值的集合:en ...

随机推荐

  1. Zipf's law

    w https://www.bing.com/knows/search?q=马太效应&mkt=zh-cn&FORM=BKACAI 马太效应(Matthew Effect),指强者愈强. ...

  2. python-笔记(四)函数

    一.函数是什么? 函数一次来源于数学,但是编程中的[函数]的概念,与数学中的函数还是有很大的不同的,编程中的函数在英文中也有很多不同的叫法. 在Basic中叫做subroutine(子过程或子程序), ...

  3. 手动配置 ESXi 主机挂载 NFS 的最大值

    目录 目录 资料 手动配置 ESXi 主机挂载 NFS 的最大值 资料 官方 KB 地址 手动配置 ESXi 主机挂载 NFS 的最大值 Open: 清单 ==> ESXi 主机 ==> ...

  4. Java ——JDBC数据库编程

    数据库分类 关系型数据库:以表来存放数据的,数据与数据之间的关系通过表之间的连接体现 面向对象的数据库:保存的是对象本身 其它 数据库:数据库管理系统中创建一个个的保存数据的单位 数据是保存在数据库的 ...

  5. iis7 https配置方法并且http跳转https

    操作场景 本文档指导您如何在 IIS 中安装 SSL 证书. 说明: 本文档以证书名称 www.domain.com 为例. 本文档以操作系统 Windows10 为例.由于操作系统的版本不同,详细操 ...

  6. 前端 CSS 一些标签默认有padding

    一个html body标签 默认有 margin外边距属性 比如ul标签,有默认的padding-left值. 那么我们一般在做站的时候,是要清除页面标签中默认的padding和margin.以便于我 ...

  7. c编程过程中错误笔记-& 理解不深啊!

    写了一个函数,删除数组里面的元素,声明如: int student_delete(int *len, struct student stu[]): 在其内部调用了另一个函数 int student_d ...

  8. (4.23)SQL Server中的加密

    转自:https://www.cnblogs.com/CareySon/archive/2012/04/01/SQL-SERVER-Encryption.html 简介 加密是指通过使用密钥或密码对数 ...

  9. OOM排除与JVM调优

    仅先记录,后续整理 1. 常用命令: jstat gcutil jmap 2. 打印GC执行情况: 通过执行jinfo -flag +PrintGCDetails <pid>直接动态开启, ...

  10. JAVA总结--设计模式

    三大类设计模式: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为 ...