概念:

现实生活中,我们常会看到这样的一种集合: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之后就可以使用了。

map集合的常用方法和遍历相关推荐

  1. 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 find 方法遍历 map 集合 | 代码示例 )

    文章目录 一.使用 map 集合的 find 方法遍历 map 集合 二.代码示例 一.使用 map 集合的 find 方法遍历 map 集合 使用 map 集合的 find 方法遍历 map 集合 ...

  2. 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 each 方法遍历 map 集合 | 代码示例 )

    文章目录 一.使用 map 集合的 each 方法遍历 map 集合 二.代码示例 一.使用 map 集合的 each 方法遍历 map 集合 遍历 map 集合 , 可以调用 map 集合的 eac ...

  3. java map遍历_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  4. java中两种遍历集合的方式_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  5. Java集合篇:Map集合的几种遍历方式及性能测试

    文章目录 一.写在前面 二.正式开始探究之旅 1. Map集合一共有多少种遍历方式呢? 2.那这几种遍历方式的具体用法是啥样的呢? 2.1 keySet()方式遍历-------for循环 2.2 k ...

  6. java.util.Map——Map集合的常用方法

    阿里云服务器优惠链接:云小站_专享特惠_云产品推荐-阿里云 开发中最常用的就是List集合和Map集合,Map集合是基于java核心类--java.util中的:Map集合用于储存元素对,Map储存的 ...

  7. java遍历map集合传值,不同方式遍历Map集合(全)

    今天一朋友问我有关map集合的遍历问题,说真的当时真是懵了似懂非懂的,下面我通过查阅资料,具体内容整理如下: public static void main(string[] args){ map m ...

  8. Java中Map集合的三种遍历方式

    文章目录 Map集合的遍历方式 Map集合的遍历方式一: 键找值 Map集合的遍历方式二: 键值对 Map集合的遍历方式三: Lambda Map集合的遍历方式 Map集合的遍历方式有3种: 方式一: ...

  9. Map集合的四种遍历方式

    Map集合的遍历1-键找值 (Iterator 遍历) Map<String,String> map = new HashMap<String, String>();map.p ...

最新文章

  1. Android报错:java.lang.NoClassDefFoundError: Failed resolution of: Ljava/util/Base64;如何解决
  2. 6421B Lab3 DNS的配置与故障排除
  3. kafka-python 停止消费
  4. 网站降权可从两方面着手分析
  5. 访问tomcat html,访问云服务器tomcat里html界面
  6. 【2】信息的表示和处理
  7. 实例22:python
  8. System.Diagnostics.Process.Star的用法
  9. 常用Java API 熟悉 方法 从记不得到忘不掉 java1.8.61为例
  10. 使用DPM2007来保护企业数据
  11. 局域网限速软件_8款Windows实用软件推荐,纯干货,总有一款是你必备的
  12. pt100热电阻计算公式C语言,PT100计算公式
  13. HTML实现舔狗日记
  14. 沉梦云商城系统源码绿色版本
  15. 业务复习-微信登录/第三方登录实现
  16. python pdf书籍领取
  17. 小程序重构 [cnode社区]:mpvue + 开源api,现已上线!
  18. 已经清空了垃圾箱怎样找回误删的文件
  19. Docker Hub的搭建、配置网络加速器、私有仓库的搭建以及私有仓库的认证与加密
  20. 【数值模型环境搭建】Intel编译器安装

热门文章

  1. 鲍捷 | 知识图谱从 0 级到 10 级简化版
  2. 鲍捷 | 知识表示——面向实战的介绍
  3. app = Flask(__name__)相关说明
  4. 金融情报挖掘:面向公开文本的期货事件聚合与传导因素分析
  5. Nature发布第一张人类造血干细胞发育的全面路线图
  6. 论文学习3-Improving Neural Fine-Grained Entity Typing with Knowledge Attention
  7. 2021-11-05深度学习
  8. 常识知识在AI不同领域应用的最新研究进展
  9. 转 Java jar (SpringBoot Jar)转为win可执行的exe程序
  10. hessian学习笔记