Map接口中的常用方法和Map集合遍历键找值方式
Map接口中定义了很多方法,常用的如下:
public V put(K key,V value) 将指定的值与此映射中的指定键相关联(可选操作)
V remove(Object key); 如果此映射中存在该键的映射关系,则将其删除
V get(Object key); 返回指定键在此标识哈希映射中所映射的值,如果对于此键来说,映射不包含任何映射关系,则返回 null
Set<K> keySet();返回此映射中所包含的键的 set 视图
Set<Map.Entry<K,V>> entrySet();返回此映射所包含的映射关系的 collection 视图
boolean containsKey(Object key)如果此映射包含对于指定的键的映射关系,则返回 true
public static void main(String[] args) {
/**
* public V put(K key,V Value):把指定的键与值添加到Map集合中
* 返回值V
* 存储键值对的时候,key不重复,返回值v是null
* 存储键值对的时候,key重复,会使用新的value替换map集合中重复的value,返回的是替换的值
*/
HashMap<String, String> map = new HashMap<>();
String v1 = map.put("李晨", "范冰冰1");
System.out.println("v1:"+v1);//v1:null String v2 = map.put("李晨", "范冰冰2");
System.out.println("v2:"+v2);//v2:范冰冰1 System.out.println(map);//{李晨=范冰冰2} map.put("冷风","龙小云");
map.put("杨过","小龙女");
map.put("尹志平","小龙女");
System.out.println(map);//{杨过=小龙女, 尹志平=小龙女, 李晨=范冰冰2, 冷风=龙小云} /**
* V remove(Object key); 如果此映射中存在该键的映射关系,则将其删除。
* 返回值V
* 如果key存在,v返回被删除的值
* 如果key不存在,v返回空
*/ HashMap<String, Integer> map = new HashMap<>();
map.put("赵丽颖",168);
map.put("杨颖",165);
map.put("林志玲",178); System.out.println(map);//{林志玲=178, 赵丽颖=168, 杨颖=165}
Integer rm1 = map.remove("林志玲"); System.out.println("rm1:"+rm1);//r1:178
System.out.println(map);//{赵丽颖=168, 杨颖=165} Integer rm2 = map.remove("林志玲");
System.out.println("rm2:"+rm2);//rm1:null /**
* V get(Object key); 返回指定键在此标识哈希映射中所映射的值,如果对于此键来说,映射不包含任何映射关系,则返回 null。
* 返回值:
* key存在,返回对应的value
* key不存在,返回null
*/
HashMap<String, Integer> map = new HashMap<>();
map.put("赵丽颖",168);
map.put("杨颖",165);
map.put("林志玲",178); Integer v1 = map.get("杨颖");
System.out.println("v1:"+v1);//v1:165 Integer v2 = map.get("迪丽热巴");
System.out.println("v2:"+v2);//v2:null /**
* boolean containsKey(Object key)如果此映射包含对于指定的键的映射关系,则返回 true。
* 包含返回true
* 不包含返回false
*/ HashMap<String, Integer> map = new HashMap<>();
map.put("赵丽颖",168);
map.put("杨颖",165);
map.put("林志玲",178); boolean b1 = map.containsKey("赵丽颖");
System.out.println("b1:"+b1);//b1:true boolean b2 = map.containsKey("赵颖");
System.out.println("b2:"+b2);//b2:false
}
Map集合遍历键找值方式
键找值方式:即通过元素中的键,获取键所对应的值
分析步骤:
1.获取Map中所有的键,由于键是唯一个,所以返回一个Set集合存储所有的键。方法提示:KeySet()
2.遍历键的Set集合,得到每一个键
3.根据键,获取键所对应的值。方法提示get(K key)
public static void main(String[] args) {
/**
* Map集合的第一种遍历方式通过键找值的方式
* Map集合中的方法
* Set<V> keySet()返回此映射中包含键的set视图
* 实现步骤:
* 1.使用Map中俄方法keySet*();把Map集合中所有的key取出来,存储到一个Set集合中
* 2.遍历Set集合获取Map集合中的每一个key
* 3.通过Map集合中的get(Key),通过key找到value
*/ HashMap<String, Integer> map = new HashMap<>();
map.put("赵丽颖",168);
map.put("杨颖",165);
map.put("林志玲",178); Set<String> keySet = map.keySet();
for (String s : keySet) {
Integer integer = map.get(s);
System.out.println(integer);
}
}
Map接口中的常用方法和Map集合遍历键找值方式的更多相关文章
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_08 Map集合_4_Map集合遍历键找值方式
键找值的方式 增强for 增强for的简化方式
- List集合_介绍&常用方法和ArrayList集合
List集合 我们掌握了Collection接口的使用后,再来看看Collection接口中的子类,他们都具备那些特性呢? 接下来,我们一起学习Collection中的常用几个子类(java.util ...
- Java基础知识强化之集合框架笔记52:Map集合之Map集合的遍历 键找值
1. Map集合的遍历 Map -- 夫妻对 思路: A:把所有的丈夫给集中起来. B:遍历丈夫的集合,获取得到每一个丈夫. C:让丈夫去找自己的妻子. 转换: A:获取所有的键 B:遍 ...
- Map集合遍历的四种方式理解和简单使用
~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值 1:无非就是通过map.keySet()获取到值,然后根据键获取到值 for(String s:m ...
- 集合遍历数组三种常用方式(Collecton和Map)
Collection集合遍历数组的三种方式: 迭代器 foreach(增强for循环) JDK1.8之后的新技术Lambda 迭代器: 方法:public Iterator inerator():获取 ...
- Java—Map接口中的常用方法
Map接口与Collection接口的区别 Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储. Map中的集合,元素是成对存在的(理解为夫妻).每 ...
- Java8新特性(一)_interface中的static方法和default方法
什么要单独写个Java8新特性,一个原因是我目前所在的公司用的是jdk8,并且框架中用了大量的Java8的新特性,如上篇文章写到的stream方法进行过滤map集合.stream方法就是接口Colle ...
- JS中的call()方法和apply()方法用法总结
原文引自:https://blog.csdn.net/ganyingxie123456/article/details/70855586 最近又遇到了JacvaScript中的call()方法和app ...
- 【转载】C#中double.TryParse方法和double.Parse方法的异同之处
在C#编程过程中,double.TryParse方法和double.Parse方法都可以将字符串string转换为double类型,但两者还是有区别,最重要的区别在于double.TryParse方法 ...
随机推荐
- WMS、WFS、WCS、WPS、WMTS、WMSC、TMS等常见地图服务的区别
WebGIS的开发者经常需要面对各种地图服务规范,例如WMS.WFS.WCS.WPS.WMTS.TMS.WMSC等.因此了解这些服务的内容是相当重要的,这里对常见的服务进行了整理. OGC联盟: 开放 ...
- 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目
系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 ... 基于. ...
- 关于visualvm无法监控本地java进程
https://blog.csdn.net/weixin_43827693/article/details/105990675?spm=1001.2101.3001.6661.1&utm_me ...
- input输入框自动填充的问题
火狐浏览器打开页面,input可以自动填充历史输入值,现在想无论input类型是type='text'还是'password'都禁止自动填充,因为我写的页面在input='text'时先检查是否有输入 ...
- MindSpore尝鲜之爱因斯坦求和
技术背景 在前面的博客中,我们介绍过关于numpy中的张量网络的一些应用,同时利用相关的张量网络操作,我们可以实现一些分子动力学模拟中的约束算法,如LINCS等.在最新的nightly版本的MindS ...
- jQuery.extend()[$.extend()]
jQuery.extend(target, object1[,objectN]);jQuery.extend([deep], target, object1[,objectN]);jQuery.ext ...
- Json序列化与反序列化导致多线程运行速度和单线程运行速度一致问题
紧跟上篇文章 十个进程开启十个bash后一致写入命令执行完毕之后产生了很多很多的文件,博主需要对这些文件同意处理,也就是说对几十万个文件进行处理,想了又想,单线程处理那么多数据肯定不行,于是乎想到了使 ...
- WinUI3开发笔记(Ⅱ)
WinUI3中的"MessageBox.Show()" # (一,如何实现) "开发WinUI3,第一个不适就是消息弹窗!" WinUI中没有C#.NetFra ...
- Spring Security之用户名+密码登录
自定义用户认证逻辑 处理用户信息获取逻辑 实现UserDetailsService接口 @Service public class MyUserDetailsService implements Us ...
- There appears to be trouble with your network connection. Retrying…
yarn 错误There appears to be trouble with your network connection. Retrying- 原因:yarn超时 解决途径: #查看代理 yar ...