如果连Map是什么你都理解不了,那我相信你也不会看到这里了。
说再多你也可能不信,那就:-----> 直接上源码哈
interface Entry<K, V> {
/**
* Returns the key corresponding to this entry.
*
* @return the key corresponding to this entry
* @throws IllegalStateException implementations may, but are not
* required to, throw this exception if the entry has been
* removed from the backing map.
*/
K getKey();
/**
* Returns the value corresponding to this entry. If the mapping
* has been removed from the backing map (by the iterator's
* {@code remove} operation), the results of this call are undefined.
*
* @return the value corresponding to this entry
* @throws IllegalStateException implementations may, but are not
* required to, throw this exception if the entry has been
* removed from the backing map.
*/
V getValue();
//...........其它一些方法,有需要的小伙伴自行去查看源码
以HashMap为例,我带大家再看看第四点(HashMap源码内有个内部实现了Map.entry接口)
请看图
static class Entry<K,V> implements Map.Entry<K,V> {
final K key;
V value;
Entry<K,V> next;
final int hash;
/**
* Creates new entry.
*/
Entry(int h, K k, V v, Entry<K,V> n) {
value = v;
next = n;
key = k;
hash = h;
}
public final K getKey() {
return key;
}
public final V getValue() {
return value;
}
public final V setValue(V newValue) {
V oldValue = value;
value = newValue;
return oldValue;
}
//..........剩下的不再复制过来,有需要自行去查看
}
要盖房子必须要有砖,同理要知道如何遍历Map,那就要有以下一些知识储备
遍历方法:
直接上代码哈
//4.map遍历学习
public static void test4()
{
Map<String, String> map = new HashMap<String, String>();
//存入数据
map.put("我的公众号", "放牛娃学编程");
map.put("口号", "分享与热爱");
map.put("爱好", "一起交流学习呀呀");
//1.普遍使用 (效率低下,大量数据时不推荐使用)
for(String key: map.keySet())
{
System.out.println(key+"------> "+map.get(key));
}
//2.Map.entrySet来遍历 (推荐使用这种方法)
for(Map.Entry<String, String> entry: map.entrySet())
{
System.out.println(entry.getKey()+"---------> "+entry.getValue());
}
//3.使用迭代器来遍历
System.out.println("----------通过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(entry.getKey()+"---------> "+entry.getValue());
}
//4.通过map.value (直接遍历value)
for(String value: map.values())
{
System.out.println("value="+value);
}
}
最后有兴趣一起交流的,可以关注我的公众号:这里你能够学到很实用的技巧,不是常用的我不说,公众号回复提取码即可获取以下学习资料啦啦啦啦,喜欢就拿去吧!!
Java web从入门到精通电子书
Python机器学习电子书
Python400集(北京尚学堂)
JavaScript项目案例、经典面试题
Java300集(入门、精通)
Java后端培训机构录集(同事培训内部提供)
类的继承.py中代码如下:# 类的继承# 1.继承时构造函数__init__()# 1.1继承中无__init__(),调用基类的__init__()# 1.2继承中有__init__(),调用派生类的__init__(),不调用基类的__init__()# 1.3继承中有__init__(),但需要调用基类的__init__(),必须显示调用基类的__init__()# 1.3.1 经典类的写法: 父类名称.__init__(self,参数1,参数2,...)
1、Struts2 是类级别的拦截, 一个类对应一个 request 上下文,SpringMVC 是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为 Struts2 中 Action 的一个方法可以对应一个 url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。2、由上边原因,SpringMVC 的方法之间基本上独立的,独享 requ
我使用过的Linux命令之date--显示、修改系统日期时间用途说明ate命令可以用来显示和修改系统日期时间,注意不是time命令。常用参数格式:date显示当前日期时间。格式:date mmddHHMM格式:date mmddHHMMYYYY格式:date mmddHHMM.SS格式:date mmddHHMMYYYY.SS设置当前日期时间,只有root用户才能执行,执行完之后还要执行clock...
几乎所有的编程语言都有自己的类型系统。 而编程语言更是常常按照其类型系统而被分为强类型语言/弱类型语言、安全类型语言/不安全类型语言、静态类型语言/动态类型语言等。 而C#的类型系统是静态、安全,并且在大多数时候是显示的; C#要求其所有类型全部从System.Object类派生。无论是开发者自己定义的类型、还是C#所提供的类型。 下面两种定义类型的方式...
出现此异常,一般是没有导入jar包!!!
VC设计分割视图通用创建框架2004-07-29 18:51 作者: 冯杰 出处: 天极网 责任编辑:方舟 目前基于分割视图的应用开发十分流行,分割视图技术是在同一个框架窗口下同时显示多个视图的一项技术。运用分割视图,可以在较短时间内给用户更多的信息量,从而使得用户界面更加的友好,增强了软件的可操作性。本文提出一个分割视图的通用创建框架。 1.分割视图创建框架 分割视图的创建大体上
python 批量修改图片尺寸# -*- coding:utf8 -*-from PIL import Imageimport os.pathimport glob# 用来解析图片尺寸用的# from skimage import transform,data,iodef convertjpg(jpgfile,outir,width = 1024 ,height = 1365):#将图片修改为416X416 img = Image.open(jpgfile) try:
最近搭建新apache服务器,一个web目录位置使用了symbolic link. 从/web/home -&gt; /home/apache/web/ web部分使用了perl.java 结果发现启动后,服务器报Symbolic link not allowed or link target not accessible。 甚感奇怪。 检查配置文件,http...
《软件需求最佳实践——SERU过程框架原理与应用(典藏版)》基本信息作者: 徐锋出版社:电子工业出版社ISBN:9787121200526上架时间:2013-5-5出版日期:2013 年5月开本:16开页码:424版次:1-1所属分类:计算机更多关于 》》》《软件需求最佳实践——SERU过程框架原理与应用(典藏版)》内容简介计算机书籍 ...
0、前言集成GRPC1、代码目录2、api服务2.1 helloworld.protosyntax = "proto3";option java_multiple_files = true;option java_package = "com.yun.grpc.api";option java_outer_classname = "HelloWorldProto";// The greeting service definition.service Simple { //
打印1-100之间所有奇数之和&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;奇数和&lt;/title&gt; &lt;script&gt; var sum = 0; for(var i =
1.问题描述玛雅历Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 80876 Accepted: 24862Description 上周末,M.A. Ya教授对古老的玛雅有了一个重大发现。从一个古老的节绳(玛雅人用于记事的工具)中,教授发现玛雅人使用了一个一年有365天的叫做Haab的历法。这个Haab历法拥有19个月,在开...