Java的数据结构-Map集合

news2025/1/18 14:03:17

文章目录

  • Map概述
  • Map常用方法
  • Map遍历元素的方法
    • 1.方法一:keySet()
    • 2.方法二:entrySet()

Map概述

  • 1、Map和collection没有继承关系
  • 2、Map集合以key和value的方式存储数据:键值对
  • key和value都是引用数据类型。
  • key和value都是存储对象的内存地址。
  • key起到主导的地址,value是key的一个附属品。

Map常用方法

V put(K key,V value)向Map集合中添加键值对
V get(Object key)通过Key获取value
void clear()清空Map集合
boolean containsKey(Object key)判断Map中是否包含某个Key
boolean containsValue(Object value)判断Map中是否包含某个value
boolean isEmpty()判断Map集合中元素个数是否为0
V remove(Object key)通过key删除键值对
int size()获取Map集合中键值对的个数
Set keySet()获取Map集合中所有的key(所有的键是一个set集合)
Collection values()获取Map集合中所有的value,返回一个Collection
Set<Map.Entry<K,V> entrySet>将Map集合转换成Set集合遍历key-value
public class MapTest01 {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();
        //1.向Map中添加key-value
        map.put(101,"zhangsan");
        map.put(202,"lisi");
        map.put(303,"wangwu");
        map.put(404,"zhaoliu");

        //2.获取添加到Map中的key-value的个数
        System.out.println("2.Map中所有键值对的个数:"+map.size());

        //3.通过key取value
        String value = map.get(303);
        System.out.println("3.通过key取到的value为:"+value);

        //4.获取所有的value
        Collection<String> values = map.values();
        System.out.println("4.values()获取Map中的所有value:"+values);
        //foreach values
        for(String str : values){
            System.out.println("5.遍历取出:"+str);
        }

        //5.获取所有的key
        Set<Integer> keys = map.keySet();
        System.out.println("9.keySet()返回Map中所有的key:"+keys);

        //6.判断是否包含某个key和value
        System.out.println("7.判断是否包含202的key的结果为:"+map.containsKey(202));
        System.out.println("8.判断是否包含zhaoliu的value的结果为:"+map.containsValue("leilei"));

        //7.通过key删除key-value
        map.remove(404);
        System.out.println("6.调用remove()方法后的键值对的数量:"+map.size());

        //8.清空Map集合
        map.clear();
        System.out.println("10.clear()后键值对的数量为:"+map.size());
    }
}

在这里插入图片描述

Map遍历元素的方法

1.方法一:keySet()

在这里插入图片描述

public class MapTest02Foreach {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();
        //1.向Map中添加key-value
        map.put(101,"zhangsan");
        map.put(202,"lisi");
        map.put(303,"wangwu");
        map.put(404,"zhaoliu");

        //2.keySet()遍历Map集合的第一种方法
        Set<Integer> keys = map.keySet();

        //2.1通过迭代器
        Iterator<Integer> it = keys.iterator();
        while(it.hasNext()){
            Integer key = it.next();
            String value = map.get(key);
            System.out.println("Iterator遍历:"+value);
        }

        //2.2foreach
        for(Integer key : keys){
            System.out.println("foreach遍历:"+map.get(key));
        }
    }
}

在这里插入图片描述

2.方法二:entrySet()

在这里插入图片描述

public class MapTest02Foreach {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();
        //1.向Map中添加key-value
        map.put(101,"zhangsan");
        map.put(202,"lisi");
        map.put(303,"wangwu");
        map.put(404,"zhaoliu");

        //2.entrySet()遍历Map集合的第二种方法
        Set<Map.Entry<Integer,String>> entry = map.entrySet();
        //2.1迭代器
        Iterator<Map.Entry<Integer,String>> it1 = entry.iterator();
        while(it1.hasNext()){
           Map.Entry<Integer,String> node = it1.next();
           Integer key = node.getKey();
           String value = node.getValue();
           System.out.println(key+"-->"+value);
        }

        //2.2foreach
        //这种方式效率比较高,因为获取key和value都是直接从node对象中获取的属性值
        //这种方式比较合适于大数据量
        for(Map.Entry<Integer,String> node1 : entry){
           System.out.println(node1);
        }
    }
}

在这里插入图片描述

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

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

相关文章

ChatGPT:利用人工智能助推教育创新

当前&#xff0c;世界正需要一个更加开放的、更加个性化的学习空间&#xff0c;学生的个性发展和生存发展应该被关注和尊重&#xff0c;课程应该引导学生掌握有用的东西&#xff0c;学生之间的差距应该被正视&#xff0c;教育成功的标准也要被重新定义。过去&#xff0c;我们总…

如何有效利用chatgpt?

如何有效地使用ChatGPT&#xff1f; 代码、诗歌、歌曲和短篇小说都可以由 ChatGPT 以特定的风格编写。您所需要的只是正确的问题和适当的提示。以下是有关如何有效使用ChatGPT的一些提示和想法&#xff1a; 头脑 风暴获取初稿解决编码问题尝试不同的提示格式查找标题寻求帮助…

Docker安装ElasticSearch/ES

目录 前言准备拉取ElasticSearch镜像安装ElasticSearch拉取elasticsearch-head镜像安装elasticsearch-head参考 前言 TencentOS Server 3.1Docker version 19.03.14, build 5eb3275d40 准备 docker 已安装。 安装 docker 参考&#xff1a;【Centos 8】【Centos 7】安装 docke…

XSS简介

OWASP TOP 10 OWASP(开放式Web应用程序安全项目)的工具&#xff0c;文档&#xff0c;论坛额全球各地分会都是开放的&#xff0c;对所有致力于改进应用程序安全的人士开放&#xff0c;最具权威的就是10项目最严重的Web应用程序安全风险列表 Cross Site Scripting&#xff08;X…

基于mediapipe的人脸关键点检测及嘴唇换色demo

Face-mesh(人脸关键点检测及网格绘制) import mediapipe as mp import numpy as np import cv2mp_face_mesh = mp.solutions.face_mesh face_mesh = mp_face_mesh.FaceMesh(static_image_mode=False, # False处理视频,True处理单张图片max_num_faces=1,refine_landmarks=True,…

LayUI之CRUD(增删改查)

目录 一、前期准备 1.数据表格 2.弹出层 3.用户表数据查询 二、用户管理后台编写 三、前端JS编写 四、效果展示 一、前期准备 1.数据表格 在layui官网找到我们需要的数据表格 根据需求复制修改代码&#xff0c;再找到表单复制一个输入框和按钮&#xff0c;做一个搜索功能…

企业级多租户动态分配和共享资源平台——IBM Spectrum Conductor

IBM Spectrum Conductor有何用途 IBM Spectrum Conductor 是一个企业级多租户平台&#xff0c;用于在常用的共享资源集群上部署和管理 Apache Spark、Anaconda、Dask 和其他应用框架和服务。 它能够支持多个并行的不同版本的应用&#xff0c;同时可在租户和应用之间动态分配和…

JavaWeb项目【SpringBoot】——图书项目4.0【源码】:SpringBoot版本 springboot相关技术 项目应用

目录 项目简介思考 & 改进1.Jsp都是同步请求---->改成异步Ajax【完成】2.前端用Jsp技术落后----->用Vue框架【完成】3.架构问题&#xff1a;配置数据和Java代码耦合【完成】3.SQL语句和Java代码耦合【完成】4.架构问题&#xff1a;servlet只能处理一个请求5.响应方式…

原型分析1

对原型的理解又深了一下。之前没考虑 其实所有的函数 都是 new Function 创建的 。所以 函数是 Function 的实例 。而且 Function 的 原型指向自己 。Object也是函数 所以也是 Function 的实例 它的__proto__ 也指向 Function的原型

JavaFX中MVC例子理解

JavaFX可以让你使用GUI组件创建桌面应用程序。一个GUI应用程序执行三个任务&#xff1a;接受用户的输入&#xff0c;处理输入&#xff0c;并显示输出。而一个GUI应用程序包含两个 类型的代码&#xff1a; 领域代码。处理特定领域的数据和遵循业务规范。交互代码。处理用户输入…

Zookeeper集群 + Kafka集群 + Filebeat + ELK

目录 一&#xff1a;Zookeeper 概述 1、Zookeeper 定义 2、Zookeeper 工作机制 3、Zookeeper 特点 4、 Zookeeper 数据结构 5、 Zookeeper 应用场景 6、 Zookeeper 选举机制 &#xff08;1&#xff09;第一次启动选举机制 &#xff08;2&#xff09;非第一次启动选举机制…

Java InetAddress类

【InetAddress类】 【相关方法】 【使用方法实例】 【代码结果】

HUAWEI Mate X3:内外屏双享,折叠影像诠释精彩

HUAWEI Mate X3是全球首款四曲折叠手机&#xff0c;轻薄实力派。它采用了独创的寰宇舷窗设计&#xff0c;内外双屏高清呈现均支持120Hz疾速高刷&#xff0c;10.7亿色彩显示&#xff0c;获得德国莱茵TV色准和准确色彩投射双认证。无论是看视频、玩游戏、办公学习&#xff0c;还是…

山西电力市场日前价格预测【2023-07-15】

日前价格预测 预测明日&#xff08;2023-07-15&#xff09;山西电力市场全天平均日前电价为282.84元/MWh。其中&#xff0c;最高日前电价为546.79元/MWh&#xff0c;预计出现在20: 30。最低日前电价为0.00元/MWh&#xff0c;预计出现在11: 45-14:15。 价差方向预测 1&#xff1…

国产芯片——单片机32位mcu的应用

随着物联网与人工智能和智能制造的发展&#xff0c;单片机作为嵌入式系统的核心控制器&#xff0c;在各类行业应用中占据重要位置。其中32位MCU在芯片设计、制造工艺、封装技术上等取得显著突破&#xff0c;以高性能的技术条件被广泛应用在智能物联等行业的方案开发中。今天我们…

自动脱扣型绝缘靴(手套)耐压支架

一、概述 武汉凯迪正大自动脱扣型绝缘靴&#xff08;手套&#xff09;耐压支架是根据《DLT 976-2017 带电作业工具、装置和设备预防性试验规程》、《DLT 1476-2015电力b2b平台工器具预防性试验规程》、《GBT 17622-2008带电作业用绝缘手套》、《CB21148 2020足部防护 b2b平台鞋…

客户案例 | 燕千云加速『名创优品』数智化转型进程

名创优品积极响应政府改革的号召&#xff0c;坚持推进数智化转型。数智化转型底层需要依托技术支撑。甄知燕千云面对名创庞大的用户体量、繁杂的终端门店需求、海量的企业知识&#xff0c;为其搭建统一的服务管理平台&#xff0c;实现内部信息协同及可视化管理&#xff0c;高效…

ElasticSearch 数据迁移工具elasticdump

ElasticSearch 数据迁移工具elasticdump Elasticdump 是一个用于导入和导出 Elasticsearch 数据的命令行工具。它提供了一种方便的方式来在不同的 Elasticsearch 实例之间传输数据&#xff0c;或者进行数据备份和恢复。 使用 Elasticdump&#xff0c;你可以将 Elasticsearch …

继承【C++】

继承 继承解决了什么问题&#xff1f;继承的应用场景是什么&#xff1f;简单举例继承的关系语法 继承解决了什么问题&#xff1f; C代码的 可重用性 通过继承实现。 新类从已有类获得已有的特性。 继承的应用场景是什么&#xff1f; 继承是一种设计的结果。&#xff08;举例…

Linux线程的生产者消费者模型 --- 阻塞队列(blockqueue)

文章目录 线程同步条件变量条件变量的接口 生产者消费者场景消费者和消费者的关系生产者和生产者的关系生产者和消费者的关系从何体现出效率的提高 Blockqueueblockqueue.hpp为什么条件变量的接口有锁作为参数 CP.cc生产者 -> queue -> 消费者兼生产者 -> queue ->…