map集合的常用方法和遍历

概念:

现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口,它是所有双列集合的父接口,用来储存键值对。 需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值 。

Map接口的常用实现类:

  • HashMap<K,V>:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
  • LinkedHashMap<K,V>:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

Map接口中定义了很多方法,常用的如下:

  • public V put(key,value) : 把指定的键与指定的值添加到Map集合中。
  • public V remove(key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
  • public V get(key):根据指定的键,在Map集合中获取对应的值。
  • boolean containskey(object key):判断集合中是否包含指定的键。
  • public Set<K> keySet(): 获取Map集合中所有的键,存储到Set集合中。
  • public Set<Map.Entry<k,v>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。
  • public V getkey():获取Entry对象中的键。
  • public V getvalue():获取Entry对象中的值。

使用put方法时,若指定的键(key)在集合中没有,则没有这个键对应的值,返回null,并把指定的键值添加到集合中;

若指定的键(key)在集合中存在,则返回值为集合中键对应的值(该值为替换前的值),并把指定键所对应的值,替换成指定的新值。

Map集合遍历

  • Map集合遍历方式
public class MapDemo01 {public static void main(String[] args) {//创建Map集合对象 HashMap<String, String> map = new HashMap<String,String>();//添加元素到集合 map.put("胡歌", "霍建华");map.put("郭德纲", "于谦");map.put("薛之谦", "大张伟");//获取所有的键  获取键集Set<String> keys = map.keySet();// 遍历键集 得到 每一个键for (String key : keys) {//key  就是键//获取对应值String value = map.get(key);System.out.println(key+"的CP是:"+value);}  }
}
  • Map集合遍历键值对方式
public class MapDemo02 {public static void main(String[] args) {// 创建Map集合对象 HashMap<String, String> map = new HashMap<String,String>();// 添加元素到集合 map.put("胡歌", "霍建华");map.put("郭德纲", "于谦");map.put("薛之谦", "大张伟");// 获取 所有的 entry对象  entrySetSet<Entry<String,String>> entrySet = map.entrySet();// 遍历得到每一个entry对象for (Entry<String, String> entry : entrySet) {// 解析 String key = entry.getKey();String value = entry.getValue();  System.out.println(key+"的CP是:"+value);}}
}

tips:Map集合不能直接使用迭代器或者foreach进行遍历。但是转成Set之后就可以使用了。

 

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

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

相关文章

麻省理工和 IBM 合作创立 Watson AI 实验室,谨慎推进 AI 研究

来源&#xff1a;36氪 概要&#xff1a;目前&#xff0c;AI 正在迅速成为现代科技的一个重点&#xff0c;并且它对我们日常生活的重要性在未来几年只会不断增加。 2017 年 9 月&#xff0c;IBM 宣布与麻省理工学院&#xff08;MIT&#xff09;建立为期十年的合作伙伴关系&#…

seqkit根据基因id_Microwell-Seq

Microwell-Seq技术&#xff0c;高通量单细胞RNA测序技术的创新High-throughput Single Cell RNA-Seq每个细胞都是独一无二的&#xff0c;但我们的研究对象往往是细胞群体&#xff0c;忽略了这些细胞之间的异质性。正因如此&#xff0c;单细胞基因组学研究受到了越来越多的关注。…

List和Set集合使用

Java提供的众多集合类由两大接口衍生而来&#xff1a;单列集合Collection和双列集合Map Collection接口 Collection接口是所有单列集合的父接口 &#xff0c;每次储存一个元素&#xff0c;接口的主要方法包括&#xff1a; public boolean add(E e) : 把给定的对象添加到当前…

Andrej Karpathy发文谈神经网络后,引发的对硬件,软件和学件的思考

作者&#xff1a;岑峰 概要&#xff1a;近日&#xff0c;Tesla AI总监Andrej Karpathy发表了一篇关于“Software 2.0”的文章&#xff0c;该文章引发了对未来神经网络的编程方式的更深入探讨&#xff0c;本文就是其中之一。 近日&#xff0c;Tesla AI总监Andrej Karpathy发表了…

pythonui自动化测试脚本实战_Python UI自动化测试实战 Zero to Hero Se

1.Selenium介绍Selenium是用于测试Web应用程序的可移植框架。Selenium提供了一种回放工具&#xff0c;用于编写功能测试&#xff0c;而无需学习测试脚本语言(Selenium IDE)。它还提供了一种特定于测试领域的语言(Selenese)&#xff0c;可以用多种流行的编程语言编写测试&#x…

异常与断言

1、接口方法声明异常与实现类方法声明异常的关系 2、异常链——示例 3、try-catch-finally 推荐组织结构&#xff0c;及其缺陷 4、断言 ----------------------------------------------------------------------------------------------- 1、接口方法声明异常与实现类方法…

2019年《自然》迎新子刊:机器智能、新陈代谢和综述物理

来源&#xff1a;Nature自然科研微信公众号 概要&#xff1a;过去十年&#xff0c;人工智能和机器人学背后的技术已取得巨大飞跃&#xff0c;并带来各种精彩应用&#xff0c;如无人驾驶汽车、人工智能引导的医学诊断、智能数字家庭助手等。 《自然-机器智能》将发表和报道人工智…

hdfs 备份数配置_大数据||HDFS HA配置详解

根据HA架构图&#xff0c;规划HA的分布式集群服务器HA集群规划配置参考图根据官方文档配置HA部分说明Architecture在典型的ha集群中&#xff0c;两台独立的机器被配置为namenode。在任何时间点&#xff0c;一个namenodes处于活动状态&#xff0c;另一个处于备用状态。活动NameN…

如何保证添加自定义对象元素的唯一性

以图书管理系统为例 1、首先自定义一个图书类Book&#xff0c;自定义变量id&#xff0c;name&#xff0c;auther&#xff0c;price并重写getset()&#xff0c;toString()方法&#xff0c;此处具体代码省略。 2、再自定义一个管理图书类Manage&#xff0c;在管理类中先定义一个…

未来货运:无人驾驶技术和卡车司机如何配合?

来源&#xff1a;厚势 概要&#xff1a;看看你的周围。你看到的几乎所有东西都经过了卡车运输&#xff0c;无论是咖啡豆&#xff0c;还是你在使用的手机。 特斯拉刚刚发布了电动卡车&#xff0c;其实很多公司都对这一运输工具都在研究革新。Uber 本周&#xff08;17.11.18&…

bat脚本如何自动输入y_在Mac如何写一个相对自动的翻译脚本

近来使用的google翻译的插件有些不稳定&#xff0c; 时灵时不灵的&#xff0c;无奈的使用百度翻译了&#xff0c; 感觉体验也不好&#xff0c; 就想自己写一个翻译的脚本。整体思路简单&#xff0c; 就是调用百度翻译api再将结果呈现出来&#xff0c; 最后使用alias链接一下。大…

RefFieldMethodDetails——查看类的域和方法

RefFieldMethodDetails&#xff0c;通过反射机制查看类的域和方法&#xff08;包括编译器添加的“桥方法”&#xff09; public class RefFieldMethodDetails {/*** 打印出指定类的* 1、声明的所有构造方法&#xff08;包括私有&#xff09;* 2、声明的所有方法&#xff08;包括…

如何将对象中的内容按照一定的顺序进行排序

1、比较comparable和comparator&#xff0c;选择正确的方法进行排序 Comparable&#xff1a;强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序&#xff0c;类的compareTo方法被称为它的自然比较方法。只能在类中实现compareTo()一次&#xff0c;不能经常修…

it 部门的建议_应对IT项目阻力的8个建议

点击上方“蓝色字体”&#xff0c;选择 “设为星标”关键讯息&#xff0c;D1时间送达&#xff01;大多数IT主管表示&#xff0c;有关抵触进行坦率的对话有助于产生新信息&#xff0c;从而最终推动项目向前发展。而且&#xff0c;在某些情况下&#xff0c;阻力是由于对需要进行路…

科学家首次在野外直接观察到雀类新物种的快速形成

来源&#xff1a;与峰同行博客 概要&#xff1a;新物种是怎么形成的&#xff1f;这是生物学上最根本的问题之一。大致听说过进化论的人可能都知道&#xff0c;地球上我们现在看到的各种各样的生物都是由最初的单细胞经过亿万年的进化而来的。 科学家首次在野外直接观察到雀类新…

java中的字符,字符串,数字之间的转换

java中的字符&#xff0c;字符串&#xff0c;数字之间的转换 string 和int之间的转换 string转换成int :Integer.valueOf(" “) int转换成string : String.valueOf(int i ) 或者Integer.toString(int i) 或者i” “//i为int类型 其中三者的效率为&#xff1a;Integer.toS…

查看某个分区之前所有的数据_腾讯大数据面试真题汇总

腾讯面试题学长11&#xff09;笔试部分&#xff08;1&#xff09;有一表名t_sh_mtt_netdisk_log&#xff0c;从表名可以看出该表是什么业务的&#xff0c;是什么周期粒度的表。&#xff08;2&#xff09;怎么查看表结构&#xff0c;表创建语句&#xff1f;怎么查看表有哪些分区…

全球16家超级独角兽公司,为什么中国能占7家,印度只有1家?未来哪些行业最可能诞生独角兽?

来源&#xff1a; 财看见-腾讯财经&#xff08;ID&#xff1a;qqckj2017&#xff09; 概要&#xff1a;对于创业公司来说&#xff0c;成为“独角兽”甚至是“超级独角兽”&#xff0c;就意味离成功只有几步之遥。 对于创业公司来说&#xff0c;成为“独角兽”甚至是“超级独角兽…

MySQL Cookbook 学习笔记-03

1、INNER JOIN关联查询 2、outer join&#xff08;LEFT JOIN 与 RIGHT JOIN&#xff09; 3、自连接 4、主从表查询 5、在分组内查找某列最大或最小的一行 6、计算小组积分榜 7、计算连续行的差 8、计算“累计和”与运行时平均值 9、使用 JOIN 控制查询结果的顺序 10、通过 UNIO…

数据可视化--pyecharts绘图

pyecharts 是一个用于生成 Echarts 图表的类库。 Echarts 是百度开源的一个数据可视化 JS 库。主要用于数据可视化。 要使用pyecharts绘制地图&#xff0c;首先需要安装一下几个地图模块&#xff1a; 1、安装地图数据包&#xff0c;用于显示地图 pip install echarts-countri…