Map.Entry的由来和使用
首先,回忆和练习一下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的由来和使用的更多相关文章
- Map接口,Map.Entry,hashMap类,TreeMap类,WeakHashMap。
Collection接口之前接触过,每次保存的对象是一个对象,但是在map中保存的是一对对象,是以key->value形式保存的. 定义: public interface Map<K,V ...
- java的Map及Map.Entry解析
Map<K,V>是以键-值对存储的(key-value), 而Entry<K,V>是Map中的一个接口,Map.Entry<K,V>接口主要用于获取.比较 key和 ...
- java Map及Map.Entry详解
Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法. keySet()方法返回值是Map中key值的集合:e ...
- Map.Entry用法示例
一般在HashMap中可以通过key值得到value值,以key作为检索项.Map.Entry<K,V>可以作为条目的检索项.HashMap中有entrySet()方法,返回值是Set&l ...
- Map.Entry
Map.Entry Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法,keySet()方法返回值是Map中 ...
- 另一种遍历Map的方式: Map.Entry 和 Map.entrySet()
源网址: http://blog.csdn.net/mageshuai/article/details/3523116 今天看Think in java 的GUI这一章的时候,里面的TextArea这 ...
- The type java.util.Map$Entry cannot be resolved. It is indirectly referenced。。.相似的错误
这个问题是出现一般都是因为JDK版本的问题.今天公司安装NC的时候就出现了这个问题.经过对错误的分析和猜测,将JDK从1.8i换成了1.7,之后就行了.根据我个人的猜测,可能是1.8以后就不支持Map ...
- Java—Map.Entry
Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法. keySet()方法返回值是Map中key值的集合:e ...
- java Map及Map.Entry详解(转)
Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法,keySet()方法返回值是Map中key值的集合:en ...
随机推荐
- ORACLE 临时表空间管理
临时表空间和临时段 临时表空间用于存放排序.临时表等数据,其信息不需要REDO,因此临时表的DML操作往往比普通表产生的REDO少很多.临时表数据变化不产生REDO,UNDO数据变化产生REDO.临 ...
- [转] python关于ctypes使用char指针与bytes相互转换的问题
最近研究人脸识别,需要用python调用so动态库,涉及到c/c++中的指针字符串转Python的bytes对象的问题. 按照ctypes的文档,直观方式是先创建对应的类型数组,再将指针取地址一一赋值 ...
- such as, for example, include和contain
such as 后接动词,通常用动名词,有时也可用动词原形 for example 后接动词,用动名词 include vt. 包含,包括 后接动词,用动名词 英英: If one thing inc ...
- original和source的区别
最近跟网页翻译怼上了,在给翻译前的页面起名是纠结于使用original page还是source page,就查了一下original和source的区别. original: n. 原件:原作:原物 ...
- activiti 流程发起人控制
最近做activiti流程发起人的控制,最开始的想法是新建一张表 ,通过控制流程定义id与发起人id进行控制,如果这样每次发布新的流程就必须 重新设置流程发起人,因为通过流程定义不能获取流程模型id, ...
- 启动tomcat报错One or more listeners failed to start,却找不到任何错误日志的临时解决方案
在整合spring和quartz时,启动tomcat,服务台报以上错误,却找不到任何错误日志…… 参考了https://www.cnblogs.com/sxdcgaq8080/p/8005886.ht ...
- Ansible安装配置(CentOS 7)
Ansible 中的概念 任务 Task——多个 Task 顺序执行,在每个 Task 执行结束可以通知 Hanlder 触发新操作. 变量 Variable——用户定义的变量. 环境 Facts—— ...
- Soap从入门到实战
Soap从入门到实战 参考文章:https://howtodoinjava.com/spring-boot/spring-soap-client-webservicetemplate/ 使用的技术:s ...
- SpringBoot(三) -- SpringBoot与日志
一.日志的起源 现在假设一个开发人员在开发一个大型系统,由于这个系统过于庞大没在很多的地方将关键的数据使用System.out.println()打印,但是当我们在项目正式上线时又需要去除,在项目bu ...
- EOJ Monthly 2019.2 E. 中位数 (二分+dfs)
题目传送门 题意: 在一个n个点,m条边的有向无环图中,求出所有从1到n 的路径的中位数的最大值 一条路径的中位数指的是:一条路径有 n 个点, 将这 n 个点的权值从小到大排序后,排在位置 ⌊n2⌋ ...
