黑马程序员_日记56_Map概述和简单方法

VLOOKUP_fixed.py 立即下载

 ——- android培训、java培训、期待与您交流! ———-

Map

1 查阅API,查找Map最基本信息

在java.util包里面有:
接口 Map

2 Map集合共性方法

###2.1 添加。
    put(K key, V value) 
    putAll(Map<? extends K,? extends V> m) 

###2.2 删除。
    clear() 
    remove(Object key) 

###2.3 判断。
    containsValue(Object value) 
    containsKey(Object key) 
    isEmpty() 


###2.4 获取。
    get(Object key) 
    size() 
    values() 

    entrySet() 
    keySet() 

3 Map常用类

3.1 Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。

3.2 HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。

3.3 TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行自然排序。

小结:

Map和Set很像。
其实Set底层就是使用了Map集合。

下面演示一下Map的共性方法

import java.util.*;

//主类要加public,对外提供出去
public class MapDemo
{
    public static void main(String[] args)
    {
        putDemo();                                                          //测试Map添加方法
        //deleteDemo();                                                     //测试删除方法
        //booleanDemo();                                                    //测试判断方法
        //getDemo();                                                        //测试获取方法
    }

    public static void putDemo()                                            //1 添加 put(K key, V value)
    {
        Map<String,String> map = new HashMap<String,String>();              //创建Map子类对象

        System.out.println("put方法返回值:"+map.put("num01","Jack"));        //添加一对键值,打印put的返回值
        System.out.println("put方法返回值:"+map.put("num01","WashingTon"));  //添加重复键,打印put的返回值
        map.put("num03","Green");                                           //添加一对键值
        map.put("num02","Tom");                                             //添加一对键值
        map.put("num04","Jane");                                            //添加一对键值

        System.out.println(map);                                            //打印集合map
    }

    public static void deleteDemo()                                         //2 删除
    {
        Map<String,String> map = new HashMap<String,String>();              //创建Map子类对象

        map.put("num01","Jack");                                            //添加一对键值
        map.put("num03","Green");                                           //添加一对键值
        map.put("num02","Tom");                                             //添加一对键值
        map.put("num04","Jane");                                            //添加一对键值

        System.out.println("原集合:"+map);                                 //打印集合map
        System.out.println("删除不存在的键,返回:"+map.remove("o2"));     //删除不存在的键
        System.out.println("删除存在的键,返回:"+map.remove("num02"));       //删除存在的键
        System.out.println("删除元素后:"+map);                               //打印删除元素后集合map
        map.clear();                                                        //清空
        System.out.println("清空后:"+map);                                 //打印清空后集合map
    }

    public static void booleanDemo()                                        //3判断
    {
        Map<String,String> map = new HashMap<String,String>();              //创建Map子类对象

        map.put("num01","Jack");                                            //添加一对键值
        map.put("num03","Green");                                           //添加一对键值
        map.put("num02","Tom");                                             //添加一对键值
        map.put("num04","Jane");                                            //添加一对键值

        System.out.println("映射中有num01:"+map.containsKey("num01"));      //判断映射中是否有指定键
        System.out.println("映射中有num05:"+map.containsKey("num05"));      //判断映射中是否有指定键
        System.out.println("映射中有值Jack:"+map.containsValue("Jack")); //判断映射中是否有指定值
        System.out.println("映射中有值Jack:"+map.containsValue("Mike")); //判断映射中是否有指定值
        System.out.println("映射为空:"+map.isEmpty());                      //判断映射是否为空
        map.clear();                                                        //清空
        System.out.println("映射清空了:"+map.isEmpty());                 //判断映射是否为空
    }

    public static void getDemo()                                            //4 获取
    {
        Map<String,String> map = new HashMap<String,String>();              //创建Map子类对象

        map.put("num01","Jack");                                            //添加一对键值
        map.put("num03","Green");                                           //添加一对键值
        map.put("num02","Tom");                                             //添加一对键值
        map.put("num04","Jane");                                            //添加一对键值

        System.out.println("原集合:"+map);                                 //打印集合map
        System.out.println("用键num01获取值:"+map.get("num01"));         //获取指定键所对应的的值
        System.out.println("用键num05获取值:"+map.get("num05"));         //获取指定键所对应的的值

        map.put(null,"Mike");                                               //存null键和对应值
        map.put("num05",null);                                              //存键和对应null值

        System.out.println("集合:"+map);                                  //打印集合map   

        Collection<String> v = map.values();                                //返回map中所有值的集合
        System.out.println("Values集合"+v);                                   //打印所有值
        System.out.println("键值对总数:"+map.size());                                        //打印映射中键值对总数
    }   
}

putDemo
这里写图片描述
deleteDemo
这里写图片描述
getDemo
这里写图片描述
booleanDemo
这里写图片描述

总结:

通过putDemo可以知道:
添加元素,添加元素,如果出现添加时,相同的键。那么后添加的值会覆盖原有键对应值。
并put方法会返回被覆盖的值。

通过deleteDemo可以知道:
remove方法会删除指定键对应的键值关系,并返回指定键对应值

通过booleanDemo可以知道:
containsKey()是判断映射是否包含指定键
containsValue()是判断映射是否包含指定值
isEmpty()是判断映射是否为空

通过getDemo可以知道:
get方法还可以用来判断该键值对是否存在

YOLO26算法心电图十二导联目标检测+训练好的模型+368张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[导联I(I), 导联II(II), 导联III(III), 胸导联V1(V1), 胸导联V2(V2), 胸导联V3(V3), 胸导联V4(V4), 胸导联V5(V5), 胸导联V6(V6), 加压肢体导联aVF(aVF), 加压肢体导联aVL(aVL), 加压肢体导联aVR(aVR)] · 训练集:313 张 · 验证集:37 张 · 测试集:18 张 · 总计:368 张 该数据集聚焦于临床心电图信号的精准识别与定位,其核心检测目标为标准12导联心电图中的各个独立导联波形区域,涵盖肢体导联(I、II、III)与加压肢体导联(aVR、aVL、aVF),以及胸前导联(V1至V6),适用于心电图自动分析系统中对各导联位置的快速准确标注与分类。数据采集场景真实还原了医院心电图室或急诊监护环境下的标准心电图记录纸,波形清晰、基线稳定,具有高度临床参考价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 57 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9708** mAP50-95 | 0.6344 Precision | 0.8990 Recall | 0.9191 train/box_loss | 1.2231 train/cls_loss | 0.9703 val/box_loss | 1.2779 val/cls_loss | 0.... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

相关推荐

企业级AI助手平台 开箱即用的全栈AI平台,支持多智能体协同、Supervisor模式编排、多种决策模式、RAG技术和流程编排能力 支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化

企业级AI应用开发框架,支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化能力,提供可视化流程编排、自主决策智能体与多智能体协同调度,兼容主流 Agent Skill 协议,帮助企业与开发者零门槛快速构建安全、高效、可落地的AI智能体应用与行业解决方案。

黑马程序员--Java学习日记之集合(collection类和map类代码)

正常遍历集合,判断遍历到的元素                      这时一旦删除元素,集合长度会减1,循环索引加1后会有元素遗漏,遍历不到。                      解决方案:删除一个元素,循环索引就减1. package cn.itcast; import java.util.ArrayList; public class ArrayListDemo {

MH_LZX001的博客 964

​​EMC设计实战:BCI(大电流注入)硬件设计规范

LIN接口:集成TVS管(如PESD5V0S1BL)与共模电感,耐压等级≥20V(8kV HBM)。输入滤波:10μF电解电容(100kHz截止)+ 0.1μF陶瓷电容(10MHz截止)。​:全频段(1MHz-400MHz)注入200mA电流,LIN通信误码率<0.01%。对敏感电路(如传感器)采用隔离电源(如ADuM5000),隔离电压≥3kVrms。​:连续波(CW)与调幅波(AM,调制深度80%)组合,覆盖全频段干扰场景。​:选择低频段(1-100MHz)感量≥100μH的绕线电感,抑制共模电流。

m0_50833886的博客 1930

05阶段:NLP自然语言处理基础(1)

one-hot编码的优劣势:劣势:完全割裂了词与词之间的联系,而且在大语料集下,每个向量的长度过大,占据大量内存.正因为one-hot编码明显的劣势,这种编码方式被应用的地方越来越少,取而代之的是接下来我们要学习的稠密向量的表示方法word2vec和word embedding.word2vec介绍 1- 是将文本变成词向量张量的一种方法,是一种无监督(自监督)的训练方法,本质是训练一个模型,将模型的参数矩阵当作所有词汇的词向量表示。基于one-hot的形式进行优化改造 2-

专注前端开发领域,深耕 Python AI Agent应用开发,热爱探索 Web 与人工智能的前沿技术。 338

集成电路模拟版图入门-版图基础学习笔记(一)

集成电路设计模拟版图入门笔记,了解版图的定义、意义、工具、设计流程。认识版图及版图组成的两大部件,版图编辑器有哪些,电路图编辑器,了解工艺厂商等。

weixin_52955333的博客 2万+

Aitoearn内容营销的最佳开源 AI 代理,创建 · 发布 · 互动 · 副业一站式平台,支持渠道:抖音、小红书(红点)、微信通道、快手、哔哩哔哩、微信公众号、抖音等等

Aitoearn内容营销的最佳开源 AI 代理,创建 · 发布 · 互动 · 副业一站式平台,支持渠道:抖音、小红书(红点)、微信通道、快手、哔哩哔哩、微信公众号、抖音等等

struggle2025的博客 1749

黑马程序员_日记8_JavaSE阶段性习题练习及复习

——- android培训、java培训、期待与您交流! ———-JAVASE阶段性习题练习及复习这篇博客主要是把毕老师出的前四大练习题全部做了一遍,经我反复测试和修改后写得一些JAVASE基础总结。 练习一 已知学生成绩以100分为满分,共分5个等级:A,B,C,D,E。 90~100为等级A,80~89为等级B,70~79为等级C, 60~69为等级D,0~59为等级E。

itheima_1llt的专栏 3599

【王道训练营 C/C++方向基础 60 题(31-40)】

王道训练营 C/C++方向基础 60 题(31-40)

qq_55805517的博客 3067

黑马程序员_日记27_JavaString类型的数字排序问题

——- android培训、java培训、期待与您交流! ———-输入一int型的数字字符串 用空格间隔,从小到大排序后,以字符串返回。 “12 0 99 -7 30 4 100 13” 要求对字符串中的数值进行排序。生成一个数值从小到大新字符串。“-7 0 4 12 13 30 99 100”分析: 1 用split方法把字符串切割成String[]类型的数组。 2 把String[]数组

itheima_1llt的专栏 2677

YOLOv11改进 | 网络结构代码逐行解析(二) | yolov11中的Mosaic增强详解

本文给大家带来的是YOLOv10中的Mosaic增强代码的详解,可能有部分人对于这一部分比较陌生,有的读者可能知道Mosaic增强但是不知道其工作原理,具体来说Mosaic增强就是指我们的数据集中的图片在输入给模型之前的一个处理过程(我们的图片并不是直接就输入给模型了,大家的训练结果中的结果检测图片大家可以看到数据集中多个图片会组合在一起这就是简单的Mosaic增强),下面我就来讲解一下其在YOLOv10中工作原理和代码定义,下面图片为一个Mosaic增强后的图片。​。

Snu77的博客 5021

金融领域必备:Python爬虫+AI量化分析,爬取股票数据并实现智能交易策略

本文通过Python爬虫+AI量化分析的组合,实现了从股票数据爬取到智能交易策略的全流程。免费获取全维度金融数据(行情、财务、舆情),替代付费终端;用LSTM模型捕捉股价的时间序列规律,提升预测精度;基于Backtrader实现策略回测与优化,保证策略的有效性。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1371

黑马程序员_日记25_Java两个字符串的最大相同子串

——- android培训、java培训、期待与您交流! ———-/* 获取两个字符串中最大相同子串。第一个动作:将短的那个串进行长度一次递减的子串打印。 "abcwerthelloyuiodef" "cvhellobnm"模拟一下: 第一趟: 最大子串:cvhellobnm ↑--------↑ 在长字符串中查找 abcwerthelloyuiodef ↑---

itheima_1llt的专栏 784

手把手教你五种方案配置Obsidian免费同步,全平台通用(支持Alist/OpenList)

Obsidian是一款优秀的Markdown笔记工具,但官方同步服务每年近700元让人望而却步💸 本文整理了5种免费同步方案,涵盖苹果生态专属方案、多网盘插件同步、版本管理同步、点对点同步、自建实时同步等不同场景📱💻 每种方案都附有详细配置步骤,助你找到最适合的同步方式✨

XiaoqiangClub的博客 1832

黑马程序员_日记26_Java字典序排序练习

——- android培训、java培训、期待与您交流! ———-对字符串中字符进行自然顺序排序。 例如,”vcz1bdAa+cs”–>abccdsvz 思路: 1 把字符串变成字符数组 2 对数组进行排序 3 找到字符数组中’a’第一次出现的位置找到 4 计算要转换的字符个数 5 把字符数组变成字符串import java.util.Arrays; class StringSortD

itheima_1llt的专栏 755

YOLO26改进 - C3k2 | C3k2 融合 ARConv 自适应矩形卷积:动态调整卷积核形状与采样点 | CVPR 2025

本文介绍了将自适应矩形卷积(ARConv)模块与YOLO26相结合的方法。ARConv是针对遥感图像全色锐化任务设计的创新卷积模块,可自适应调整卷积核形状与采样点数量,解决传统卷积刚性限制,实现高效特征提取。其工作流程包括学习卷积核高度和宽度、选择采样点数量、生成采样图、卷积实现与空间自适应增强。我们将集成ARConv的C3k2_ARConv模块引入YOLO26,对相关代码进行修改和注册,并配置了YOLO26 - C3k2_ARConv.yaml文件。实验脚本显示,该结合方式应用于目标检测任务。

魔改工程师的博客 496

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

黑马程序员_日记33_Java迭代器基本使用

——- android培训、java培训、期待与您交流! ———-迭代器Iterator测试查阅API,得到迭代器的基本常识: 对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同: 迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection

itheima_1llt的专栏 747

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

黑马程序员_日记2--Java数组

——- android培训、java培训、期待与您交流! ———-数组复习总结一、数组的定义数组的概念所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序

itheima_1llt的专栏 716

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

黑马程序员_日记9_Java学习感言

——- android培训、java培训、期待与您交流! ———-学习感言原计划快速看一遍JAVASE视频复习一下,然后直接面试。但是从16号到今天,已经10天了,我才刚刚完成10天的学习。冷静下来,仔细想想还是方法有问题。前段时间听课都没有压力,也就没有经常动手练习,但是累积到做练习四的时候,才发现并不是很熟练,于是沉下心来花了2天的时间回头把所有的练习都不使用eclipse运行一遍,现在感觉基础

itheima_1llt的专栏 713

黑马程序员_日记21_JavaString常用方法

——- android培训、java培训、期待与您交流! ———-String类用来描述字符串,它提供了许多的方法来操作字符串。 那么,在String众多的方法中,常用的方法有哪些呢??1 获取1.1 字符串的长度int length(); 示例:String str = "abcdefg"; str.length();注意不是str.length;1.2 根据索引获取字符char c

itheima_1llt的专栏 662

黑马程序员_日记59_TreeMap自定义对象练习

——- android培训、java培训、期待与您交流! ———-TreeMap自定义对象存取练习需求:每一个学生都有对应的归属地。 学生Student,地址String。 学生属性:姓名,年龄。 注意:姓名和年龄相同的视为同一个学生。 保证学生的唯一性。 对学生对象的年龄进行升序排序,用Comparable实现; 对学生的姓名进行字典序排序,用Comparator实现。因为数据是以键值

itheima_1llt的专栏 626

黑马程序员_90_网络编程Socket

——- android培训、java培训、期待与您交流! ———-概述网络参考模型OSI(Open System Interconnection 开放系统互连)参考模型 TCP/IP 参考模型 图示如下 七层模型 1. 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化

itheima_1llt的专栏 611

黑马程序员_日记22_JavaStringTrim练习

——- android培训、java培训、期待与您交流! ———-1,模拟一个trim方法,去除字符串两端的空格。分析:1、明天功能的结果,去除字符串两端的空格。String 2、有没有未知参数??被改变的字符串String str思路: 1 当左边是空格时循环判断,直到不是空格结束,记录该脚标; 2 当右边是空格时循环判断,直到不是空格结束,记录该脚标; 3 以上条件,当

itheima_1llt的专栏 610

黑马程序员_日记16_Java多线程(六)

——- android培训、java培训、期待与您交流! ———-死锁一、基本概念死锁是什么呢? 两个线程分别持有一个资源, 并同时请求得到对方的资源。 在这种情况下产生的不正常情况就叫做死锁。死锁在什么情况下会发生呢? 死锁在同步嵌套同步的情况下会发生。 至少有2把锁,才会产生死锁。二、死锁实例1首先,以前面售票的例子展示一下死锁。class Ticket implements Runn

itheima_1llt的专栏 591

黑马程序员_日记10_Java包

——- android培训、java培训、期待与您交流! ———- 包(package) 一、创建包 二、包的引用 1 包与包之间的访问 2 加载需要使用的类 3 加载其他包(import) 4 jar包 5 CLASSPATH

itheima_1llt的专栏 582

黑马程序员_日记42_HashSet自定义对象去重练习

——- android培训、java培训、期待与您交流! ———-往hashSet集合中存入自定对象 姓名和年龄相同为同一个人,重复元素。思路: 1 把数据存入Person,建立Person类 2 把Person对象存入HashSet,建立HashSet集 先运行一遍,观察运行结果,进行分析。import java.util.*; //1 把数据存入Person,建立Person类 clas

itheima_1llt的专栏 578

黑马程序员_日记64_reverseOrder

——- android培训、java培训、期待与您交流! ———-/* static Comparator reverseOrder() 返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序。 static Comparator reverseOrder(Comparator cmp)

itheima_1llt的专栏 575
上一篇: 黑马程序员_日记55_TreeSet、泛型限定和比较器限定方式的综合运用方式
下一篇: 黑马程序员_日记57_Map如何取出所有键值
回到未来2020
博客等级 码龄12年 27粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值