java Map集合的使用

2023-11-10

Map的特点

1.存储时以键值对存储
2取值时可以根据键获取对应的值
3.键不能重复,如果重复了,旧值会被新值覆盖4.值可以重复

Map接口的常用实现类

HashMap

HashMap键值对的存取是无序的,它会将你put进去的数据乱序输出
JSONObject类的内部就是勇HashMap储存的,所以JSONObject内的数据也是乱序的

LinkedHashMap

LinkedHashMap 键值对的存取是有序的,它会将你put进去的数据按顺序输出

TreeMap

TreeMap键值对的存取是有序的,它会将你put进去的数据按顺序输出
可以按照元素的默认排序规则来排序,元素所属的类必须实现Comparable,并通过该接口的compareTo()方法实现排序

Map集合的常用方法的使用

1. 添加map集合元素
  • put(K key, V value) 将指定键值对添加到map集合中
  • putAll(Map<? extends K, ? extends V> m)将指定的子map集合添加到map集合中
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("你好","hello");
        map.put("世界","word");
        System.out.println(map);

        Map<String, String> map2 = new HashMap<>();
        map2.put("name","map2");
        map2.putAll(map);
        System.out.println(map2);
    }

输出结果如下:

{你好=hello, 世界=word}
{你好=hello, name=map2, 世界=word}

不难看出我们使用的HashMap是无序的
这个我们后边会讲到

2、删除map集合元素
  • remove(Object key)删除map集合中指定key对应的键值对,返回被删除的元素的值
        Map<String, String> map = new HashMap<>();
        map.put("你好","hello");
        map.put("世界","word");
        map.put("我","i");
        map.put("是","am");
        map.put("中国人", "Chinese");

        System.out.println("这是删除之前的map>>>>>>>" + map);
        String val = map.remove("你好");
        System.out.println("这是删除之后的map>>>>>>>" + map);
        System.out.println("删除的值是:"+val);
这是删除之前的map>>>>>>>{=i, 你好=hello, 中国人=Chinese, 世界=word,=am}
这是删除之后的map>>>>>>>{=i, 中国人=Chinese, 世界=word,=am}
删除的值是:hello
3、替换map集合元素
  • replace(K key, V value)替换map集合中指定key对应的值 jdk1.8新增的功能
4、集合中是否包含指定的key和value
  • boolean containsKey(Object key)集合中是否包含指定的key
  • boolean containsValue(Object value)集合中是否包含指定的value
5、分别获取map集合中所有的key和value
  • Set<K> keySet()返回map集合中所有的key 存储到Set集合
  • Collection<V> values()返回map集合中所有的value 存储到Collecton集合
6、获取map结合中所有的键值对
  • Set<Map.Entry<K, V>> entrySet()
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("你好","hello");
        map.put("世界","word");
        map.put("我","i");
        map.put("是","am");
        map.put("中国人", "Chinese");

        System.out.println("这是删除之前的map>>>>>>>" + map);
        String val = map.remove("你好");
        System.out.println("这是删除之后的map>>>>>>>" + map);
        System.out.println("删除的值是:"+val);

        map.replace("我","me");
        System.out.println("这是替换之后的map>>>>>>>>>>>"+ map);

        System.out.println("集合中是否包含键’我‘:" +map.containsKey("我"));
        System.out.println("集合中是否包含值’word‘:" +map.containsValue("word"));

        System.out.println("集合中所有的key:"+ map.keySet());
        System.out.println("集合中所有的value:"+ map.values());
        System.out.println("获取集合中所有的键值对"+map.entrySet());
        Set<Map.Entry<String, String>> entries = map.entrySet();
        
        for (Map.Entry<String, String> entry :entries) {
            System.out.println("键:"+entry.getKey()+"   值"+entry.getValue());
        }

    }

运行结果如下:

这是删除之前的map>>>>>>>{=i, 你好=hello, 中国人=Chinese, 世界=word,=am}
这是删除之后的map>>>>>>>{=i, 中国人=Chinese, 世界=word,=am}
删除的值是:hello
这是替换之后的map>>>>>>>>>>>{=me, 中国人=Chinese, 世界=word,=am}
集合中是否包含键’我‘:true
集合中是否包含值’word‘:true
集合中所有的key:[, 中国人, 世界,]
集合中所有的value:[me, Chinese, word, am]
获取集合中所有的键值对[=me, 中国人=Chinese, 世界=word,=am]:我   值me
键:中国人   值Chinese:世界   值word
键:是   值am

Map集合的遍历

  • 根据键找值
  • 根据键值对对象遍历
System.out.println("map循环方法1");
        for (Map.Entry<String, String> entry :entries) {
            System.out.println("键:"+entry.getKey()+"   值"+entry.getValue());
        }

        Set<String> stringSet = map.keySet();
        System.out.println("map循环方法2");
        for (String s : stringSet) {
            String s1 = map.get(s);
            System.out.println("键:"+s + "值:" + s1);
        }
map循环方法1:我   值me
键:中国人   值Chinese:世界   值word
键:是   值am
map循环方法2
键:我值:me
键:中国人值:Chinese
键:世界值:word
键:是值:am



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java Map集合的使用 的相关文章

随机推荐

  • 【STM32F4】STM32F407+ESP8266连接机智云过程详解

    要求 通过手机上的机智云通用APP 点亮开发板载LED0 LED1 摘要 硬件组成 STM32F407ZGT6 esp8266 乐鑫 软件APP 机智云开发都者中心下载的通用APP Demo Xcom串口调试助手 Keil V5 调试过程详
  • mui实现表格

    mui的css文档中没有向bootstrap中类似的写好的样式供调用 但是用table显示表格本身就不难看 再写一些CSS类完全可以放到网页中 下面提供代码
  • ROS2中创建 Python 和 C++包

    创建 Python 包 在本教程中 您将学习如何创建和设置 ROS2 Python 包 我将向您展示每一步 并解释文件之间的关系 在哪里编写节点 如何添加启动文件等 设置 ROS2 Python 包 Python包内文件说明 package
  • 进程管理详解

    1 进程 进程就是出于执行期的程序 但是进程并不仅仅局限于一段可执行的代码 通常进程还要包括其他资源 像打开的文件 挂起的信号 内核内部数据 处理器状态 一个或多个具有内存映射的内存地址空间及一个或多个执行线程 当然还包括用来存放全局变量的
  • idea工具基础配置(Mac)

    用于个人在初次使用idea时 做一些基础配置 便于后续快速开发 此文章不涉及快捷键设置 若需要快捷键设置可查看其他链接 idea Mac 快捷方式设置 快捷键改为eclipse 1 idea背景颜色 intelliJ IDEA gt pre
  • (每日一练)MATLAB数据拟合

    今天就的学习内容是数据拟合 数据拟合也称为曲线拟合 是一种把现有数据透过数学方法来代入一条数式的表示方式 科学和工程问题可以通过诸如采样 实验等方法获得若干离散的数据 根据这些数据 我们往往希望得到一个连续的函数 也就是曲线 或者更加密集的
  • SpringMVC学习笔记

    springMVC简单入门 快速搭建 pom xml依赖
  • JQuery DOM

    操作文本 常用方法 代码实现 div 我是div div
  • 用Python赚钱的4个大招,女程序员做副业躺赚

    关于穷 去年有了一个更学术的说法 隐形贫困人口 就是因为有太多 种草达人 让我们为了物质生活超前消费 再加上不理财的话 那简直是雪上加霜 看到知乎上面最近有一个很火的问题 90后的你 现在拥有多少存款 你会看到人生百态 有人父母双亡 白手起
  • Docker : Docker镜像的分层结构

    1 美图 2 概述 3 base镜像 base 镜像简单来说就是不依赖其他任何镜像 完全从0开始建起 其他镜像都是建立在他的之上 可以比喻为大楼的地基 docker镜像的鼻祖 base 镜像有两层含义 不依赖其他镜像 从 scratch 构
  • Github 如何设置 master 为默认分支

    起因 github 新版本上线之后 原默认分支为 master 现在统一改为了 main 我不禁产生疑问 为什么要改呢 原因大概是漂亮国农奴历史遗留问题导致的 master 奴隶主 slaver 奴隶 解决方法 我们已经习惯以 master
  • 算法:优先队列-理论

    目录 优先队列 我们平时比较常见的优先队列的场景有什么 优先队列的实现机制 java的优先队列是怎么实现的 优先队列 我们先回忆一下什么是队列 队列 一种先进先出的数据结构 主要关注点在于先入的元素
  • 【初级计量经济学】内生性问题——工具变量法(Stata实现)

    目录 1 数据来源以及变量详目 1 1变量一览表 1 2数据描述性统计 2 模型设定以及初步回归 2 1 OLS 模型 2 2 回归结果 2 3 回归结果分析 内生性问题校正 1工具变量法 2 两阶段最小二乘 3 豪斯曼检验 stata手工
  • 智能机器人用什么语言编程

    智能机器人用什么语言编程 对于很多家长们来说 他们的任务之一就是培养孩子的学习 很多的家长在培养孩子的学习方面可以说是十分的重视的 会给孩子选择一些能够有利于孩子成长的课程 就拿现在很多的家长想要孩子去学习机器人编程的课程来说 有的家长对于
  • servlet / jsp 学习——java,关系,区别,核心概念,代码例子

    互联网三大基石 HTTP HyperText Transfer Protocol 传输数据 URL Uniform Resource Locator 定位数据 HTML HyperText Markup Language 显示数据 serv
  • 类的构造函数和析构函数

    1 把对象的初始化工作放在构造函数中 把清除工作放在析构函数中 当对象被创建时 构造函数被自动执行 当对象消亡时 析构函数被自动执行 这下就不用担心忘了对象的初始化和清除工作 2 构造函数 析构函数与类同名 由于析构函数的目的与构造函数的相
  • CAD——MV视口与图层

    CAD MV视口与图层 MV视口 MV 空格 CAD MV视口锁定比例 Z S 1 nXP 图层 LA 空格 MV视口 MV 空格 MS 空格 表示进入MV视口空间 PS 空格 表示退出MV视口空间 操作 打开布局 gt MV 空格 gt
  • Flask 实现分页展示数据(简单套路)

    简单方法套路 套用模板 定义宏 在templates里新建一个 macros html 代码如下 macro pagination widget pagination endpoint ul class pagination ul
  • golang开发的准备 - gvm(go版本管理软件)的使用

    概述 gvm软件用于go版本的管理 主要的功能为go版本的查看 下载安装和切换 一 go版本的查看 gvm listall 命令用于查看可以下载安装的go版本 shane ubuntu gvm binscripts gvm listall
  • java Map集合的使用

    Map集合的使用 Map的特点 Map接口的常用实现类 Map集合的常用方法的使用 1 添加map集合元素 2 删除map集合元素 3 替换map集合元素 4 集合中是否包含指定的key和value 5 分别获取map集合中所有的key和v