Java基础 HashMap的添加 修改 遍历 Map.Entry Map.entrySet()的使用及实例

Java Map

Map中不能包含相同的键,每个键只能映射一个值。

HashMap:并不能保证它的元素的顺序,元素加入散列映射的顺序并不一定是它们被迭代方法读出的顺序。

  • Map.Entry

Map.Entry 是Map中的一个接口,他的用途是表示一个映射项(里面有Key和Value)

Map.Entry里有相应的getKey和getValue方法,即JavaBean,让我们能够从一个项中取出Key和Value。

  • Map.entrySet()

Map.entrySet() 这个方法返回的是一个Set<Map.Entry<K,V>>。Set里面的类型是Map.Entry,里面存放的是键值对。一个K对应一个V。

  • Map.keyset()

keySet是键的集合,Set里面的类型即key的类型。

package Map.test;import java.util.*;public class Test {public static void main(String args[]) {// 创建HashMap 对象HashMap hm = new HashMap();// 加入元素到HashMap 中hm.put("John Doe", new Double(3434.34));hm.put("Tom Smith", new Double(123.22));hm.put("Jane Baker", new Double(1378.00));hm.put("Todd Hall", new Double(99.22));hm.put("Ralph Smith", new Double(-19.08));// 返回包含映射项的集合Set set = hm.entrySet();// 用Iterator 得到HashMap 中的内容Iterator i = set.iterator();// 显示元素while (i.hasNext()) {// Map.Entry 可以操作映射的输入Map.Entry me = (Map.Entry) i.next();System.out.print(me.getKey() + ": ");System.out.println(me.getValue());}System.out.println();// 让John Doe 中的值增加1000double balance = ((Double) hm.get("John Doe")).doubleValue();//得到旧值// 用新的值替换旧的值hm.put("John Doe", new Double(balance + 1000));System.out.println("John Doe's 现在的资金:" + hm.get("John Doe"));}
}
/*
Todd Hall: 99.22
John Doe: 3434.34
Ralph Smith: -19.08
Tom Smith: 123.22
Jane Baker: 1378.0John Doe's 现在的资金:4434.34
*///四种遍历Map
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);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

adminer.php下载,Adminer.php

Adminer.php就是原来的phpMinAdmin&#xff0c;这是用PHP编写的数据库管理工具&#xff0c;支持mysql、mariadb、postgresql、sqlite、MS SQL、Oracle等多种数据库&#xff0c;虽然是一个源码&#xff0c;但是可以使用用户们和密码直接连接到数据库的服务器&#xff0c;既可以对…

windows下如何在命令行里切换到任意目录

切换到C盘中的某个文件夹&#xff0c;比如AppData&#xff0c;可以执行命令cd AppData; 但如果想切换到D盘&#xff0c;输入cd d:是不行的; 如果我们要切换盘符的目录&#xff0c;正确的用法是在cd 和路径中间 增加一个“/d”&#xff0c;如cd /d d: 也可以不用cd指令&#x…

Java基础 系统注解 @Override @Deprecated @SuppressWarnings 使用的方法及原因

Java 系统注解 为什么用&#xff1f;&#xff1a; 好处&#xff1a;使用系统定义的注解&#xff0c;可以在编译时对程序进行检查。 注解用在包、类、字段、方法、局部变量、方法参数等的前面&#xff0c;对这些元素进行说明和注释。 Override Override用来修饰一个方法&am…

java二维数组排序先行后列,数组知识点归纳

◆◆◆一、理解一维数组的定义和应用&#xff0c;了解二维数组和控件数组&#xff1b;1、数组的概念&#xff1a;数组并不是一种数据类型&#xff0c;而是一组相同类型数据的集合。用一个统一的名字(数组名)代表逻辑上相关的一批数据&#xff0c;每个元素用下标变量来区分&…

Java 使用反射处理注解

Java 使用反射处理注解 自定义注解的格式&#xff1a; [public|final] interface 注解名//interface 表明&#xff1a;这是一个自定义注解 {注解元素//注解元素 是无参数的方法 }// 注解元素的格式&#xff1a; 数据类型 注解元素名() [default 默认值]例子&#xff1a; //自…

php面试宝典1000题,【PHP面试宝典1000题】HTTP中的请求头(深圳小美网络科技)

(1)通作一新求抖直微圈用信息头即址工框按都不他移据流。果原箭近第作架量是能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pra分浏代刚的学过互解久点维数数请曾房总题屏断果如以气。泉公一实切式时带近享览码开时会进。,后&#xff0c;护…

java基础 通过继承Thread类和实现Runnable接口创建线程

java 创建线程 Java中&#xff0c;线程也是一种对象&#xff0c;但不是任何对象都可以成为线程。 只有实现了Runnable接口或继承了Thread类的对象才能成为线程。 继承Thread类 //格式&#xff1a; class 类名 extends Thread//从Thread类扩展出子类 {属性方法修饰符 run(){…

php求链表中位数,先给伸手党的php链表遍历求和

问题给出两个 非空 的链表用来表示两个非负的整数。其中&#xff0c;它们各自的位数是按照 逆序 的方式存储的&#xff0c;并且它们的每个节点只能存储 一位 数字。如果&#xff0c;我们将这两个数相加起来&#xff0c;则会返回一个新的链表来表示它们的和。您可以假设除了数字…

Java基础 线程同步

线程的同步&#xff1a;在编程过程中&#xff0c;为了防止多线程访问共享资源时发生冲突&#xff0c;Java提供了线程同步机制。所谓同步&#xff0c;就是指一个线程等待另一个线程操作完再继续的情况。 线程安全&#xff1a;一个类很好地同步以保护它的数据&#xff0c;这个类…

c++primer 3.2,3.3练习题

文章目录3.2.2 string 对象上的操作3.2.3 处理string对象中的字符3.3.2 向vector对象中添加元素3.3.3其他vector操作练习题涉及到代码的部分。3.2.2 string 对象上的操作 3.2 //一次输入一整行 #include<string> #include<iostream> using namespace std;int mai…

c++primer 3.4练习题

文章目录3.4 迭代器介绍3.4.1 使用迭代器3.4.2 迭代器运算3.4 迭代器介绍 3.4.1 使用迭代器 3.21 #include<vector> #include<iostream> #include<string> using namespace std;int main(){vector<int> v1;vector<int> v2(10);vector<int&…

嵌入式nosql php,NoSQL 嵌入式数据库NeDB示例

在nw.js一直无法配置sqlite3数据库&#xff0c;所以一直使用web sql数据库&#xff0c;不过还原之类的操作异常麻烦&#xff0c;打算使用NeDB数据库&#xff0c;非关系型数据库的扩展性很适合数据结构不确定性的nw.js项目。在Capacitor或cordova打包APP使用需引用&#xff1a;n…

logisim无法打开解决办法

打开报错&#xff1a;the registry refers to a nonexistent java Runtime Environment installation or the runtime is corrupted. 我明明装了1.8的jdk&#xff0c;环境变量也配置好了。但是还显示没有jdk环境。 解决办法&#xff1a; 命令行输入&#xff1a; d:cd D:\lo…

php 10的次方,动态 - 1的10次方 - OSCHINA - 中文开源技术交流社区

你们都说得对&#xff0c;可是下面这个代码怎么优化呢&#xff1f;public String(int[] codePoints, int offset, int count) {if (offset < 0) {throw new StringIndexOutOfBoundsException(offset);}if (count < 0) {throw new StringIndexOutOfBoundsException(count)…

单片机实验:交通灯控制

实验要求 按照电路要求在Protues中设计电路图&#xff0c;或者使用开发板。编程实现如下功能&#xff1a; 用单片机端口作输出口&#xff0c;控制四个方向共12个发光二极管亮灭&#xff0c;模拟交通灯管理。功能描述如下&#xff1a;初始态为四个路口的红灯全亮之后&#xff0…

单片机实验:节日彩灯控制器

任务 设计8路节日彩灯控制器&#xff0c;要求在Protues中设计接口电路图&#xff0c;并编程实现节日彩灯闪烁方式的控制&#xff1a; 通过P1.0到P1.2来控制3个按键。3个按键分别对应3种彩灯闪烁方式。彩灯闪烁方式分别为&#xff1a;从上往下的循环、从下往上以及从中间向两边…

oracle关联分组查询,oracle中关联查询、分组查询

高级查询1.关联查询作用&#xff1a;可以跨越多表查询--查询出员工的名字和他所在部门的的名字//古老的写法select first_name,name from s_emp,s_dept where s_emp.dept_id s_dept.id;//现在的写法select e.first_name,s.name from s_emp e join s_dept s on e.dept_id s.id…

单片机实验:数据区传送程序

任务 将单片机片内存储器存储区首地址设置为60H、片外存储器存储区首地址设置为4000H&#xff0c;存入片内存储区内容为04H-14H共17个字节 &#xff0c;读取片内首地址为60H单元内容&#xff0c;将该内容传送到片外数据存储器存储区中保存(首地址4000H)&#xff0c;将保存在片…

shapefile导入oracle,shp2sdo.exe用法:shpfile导入OracleSpatial

在使用OracleSpatial时&#xff0c;不免需要将shpfile导入&#xff0c;本人使用shp2sdo.exe和oracle内置工具(sqlplus和sqlldr)来完成&#xff0c;使用熟了还比较方便&#xff0c;主要是手动操作四步,本人是在windows中进行的,导入cities.shp。1. 转换数据格式首先使用shp2sdo.…

信号与系统实验:信号抽样

已知一个连续时间信号f(t)sinc⁡(t)f(t)sinc⁡(t)f(t)sinc⁡(t)&#xff0c;取最高有限带宽频率fm1Hzf_m1Hzfm​1Hz &#xff08;1&#xff09;分别显示原连续信号波形和 fsfm、fs2fm、fs3fmf_sf_m、f_s2f_m、f_s3f_mfs​fm​、fs​2fm​、fs​3fm​三种情况下抽样信号的波形。…