目录

  • 前言
  • 函数方法
  • Map.Entry函数
  • 实战演练

前言

“键值”对映射的抽象接口。该映射不包括重复的键,一个键对应一个值

函数方法

1.实例化一个对象

Map<Integer, String> maps = new HashMap<Integer, String>();

则在添加的时候要一一对应类型,其他方法也类似

// 添加元素
maps.put(10,"A");
maps.put(20,"B");

如果实例类型为两个string

Map<String, String> maps = new HashMap<String, String>();

则在添加元素的时候也需要对应,其他方法也类似

maps.put("book","english");
maps.put("name","码农研究僧");

2.添加元素

maps.put(Object key, Object value);

3.修改元素

maps.replace(Object key, Object value);

4.删除元素

maps.remove(Object key);

5.此映射包含指定键的映射关系,则返回 true

boolean containsKey(Object key)

6.此映射将一个或多个键映射到指定值,则返回 true

boolean containsValue(Object value)

7.指定的对象与此映射是否相等

boolean equals(Object o)

8.判定值
返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。

get(Object key)

Map.Entry函数

Map.Entry是Map声明的一个内部接口
类型为Entry<K,V>
接口中有getKey(),getValue方法

1.遍历map的集合

冒号前面是集合中的元素,后面是集合
取出集合中的每个元素进行操作
map.entryset()这个方法返回的就是Entry的集合

for (Map.Entry<Integer, Integer> entry : map.entrySet()) {System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}

2.遍历map的key和value值


Map<Integer, Integer> map = new HashMap<Integer, Integer>();//遍历map中的键
for (Integer key : map.keySet()) {System.out.println("Key = " + key);
}//遍历map中的值
for (Integer value : map.values()) {System.out.println("Value = " + value);
}

3.使用Iterator遍历

Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();while (entries.hasNext()) {Map.Entry<Integer, Integer> entry = entries.next();System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());}

4.通过键找遍历

Map<Integer, Integer> map = new HashMap<Integer, Integer>();for (Integer key : map.keySet()) {Integer value = map.get(key); System.out.println("Key = " + key + ", Value = " + value);}

实战演练

class Solution {public int majorityElement(int[] nums) {Map<Integer, Integer> counts = new HashMap<Integer, Integer>();for (int num : nums) {if (!counts.containsKey(num)) {counts.put(num, 1);} else {counts.put(num, counts.get(num) + 1);}}Map.Entry<Integer, Integer> majorityEntry = null;for (Map.Entry<Integer, Integer> entry : counts.entrySet()) {if (majorityEntry == null || entry.getValue() > majorityEntry.getValue()) {majorityEntry = entry;}}return majorityEntry.getKey();}
}

java之map函数详细分析(全)相关推荐

  1. java addslashes_php addslashes 函数详细分析说明

    语法: string addslashes(string str); 内容说明 本函数使需要让数据库处理的字符串中引号的部份加上斜线,以供数据库查询 (query) 能顺利运作.这些会被改的字符包括单 ...

  2. 【SemiDrive源码分析】【X9芯片启动流程】30 - AP1 Android Kernel 启动流程 start_kernel 函数详细分析(一)

    [SemiDrive源码分析][X9芯片启动流程]30 - AP1 Android Kernel 启动流程 start_kernel 函数详细分析(一) 一.Android Kernel 启动流程分析 ...

  3. java消费者模式_基于Java 生产者消费者模式(详细分析)

    生产者消费者模式是多线程中最为常见的模式:生产者线程(一个或多个)生成面包放进篮子里(集合或数组),同时,消费者线程(一个或多个)从篮子里(集合或数组)取出面包消耗.虽然它们任务不同,但处理的资源是相 ...

  4. linux 内核flush,armv8(aarch64)linux内核中flush_dcache_all函数详细分析

    /* *  __flush_dcache_all() *  Flush the wholeD-cache. * Corrupted registers: x0-x7, x9-x11 */ ENTRY( ...

  5. java生产线消费者,基于Java 生产者消费者模式(详细分析)

    生产者消费者模式是多线程中最为常见的模式:生产者线程(一个或多个)生成面包放进篮子里(集合或数组),同时,消费者线程(一个或多个)从篮子里(集合或数组)取出面包消耗.虽然它们任务不同,但处理的资源是相 ...

  6. RxJava 中的Map函数原理分析

    首先看一段Map函数的使用代码: Observable.create(new Observable.OnSubscribe<Integer>() {@Overridepublic void ...

  7. java lam表达式_详细分析Java Lambda表达式

    在了解Lambda表达式之前我们先来区分一下面向对象的思想和函数式编程思想的区别 面向对象的思想: 做一件事情,找一个能解决这个事情的对象,调用他的方法来解决 函数时编程思想: 只要能获取到结果,谁去 ...

  8. java中map函数指针_如何用Rust编写合适的map函数?

    使用以下链接列表定义: enum List { Nil, Cons(T, ~List) } 我正在尝试编写一个map函数(即将操作应用于列表的每个元素并返回一个新列表) . 我正在尝试使用教程中提供的 ...

  9. JAVA设计模式之单例模式详细分析(全)

    目录 前言 1. 定义 2. 实现 2.1 懒汉式(线程不安全) 2.2 饿汉式(线程安全) 2.3 懒汉式(线程安全) 2.4 双重检查锁实现(线程安全) 2.5 静态内部类实现(线程安全) 2.6 ...

最新文章

  1. 机器人大潮中暗藏多少伪命题
  2. 基于SSM实现在线课程学习及作业提交系统
  3. java之hiberante之集合映射之list映射
  4. 分区和分片的区别_PHP: 分区和分片 - Manual
  5. Java多线程——FutureTask源码解析
  6. python找工作好不好_Python这么火,为何有人说Python不好找工作?
  7. shape context matlab,形状上下文(shape context)算法完全解读
  8. ipvsadm命令的用法
  9. 5G协议标准化及进展
  10. 楼宇智能化工程设计、施工、验收规范目录
  11. 如何在html中使用特殊字体
  12. pdf免费在线解密方法(无需密码)
  13. vmware运行虚拟机ubuntu,电脑就重启
  14. Simulink数据保存提取和示波器显示
  15. 移动网络安全之无线局域网安全
  16. 荣耀v30能用鸿蒙吗,荣耀30、V30和20系列等用户有福啦
  17. python小游戏之外星人入侵之pygame实战应用(含源码下载)
  18. 【USB笔记】查询VID对应的USB设备厂商
  19. Android Adb命令(5) - find 查找设备文件
  20. canvas+html实现视频弹幕,可以全屏实现

热门文章

  1. Ubuntu16.04 挂载vivoZ3手机存储器
  2. R语言主成分分析(PCA)
  3. linux系统支持游戏,2017 年 30 款最好的支持 Linux 的 Steam 游戏
  4. 如何搭建DNS服务器
  5. opengl曲面贴图
  6. 基于element组件商品sku多规格
  7. 视频教程-与你一起学Oracle 11g(下)-Oracle
  8. java 三角形面积公式_java中计算任意三角形面积。
  9. 信息系统项目管理师第四版知识摘编:第8章 项目整合管理
  10. 简述面向对象的三大特征