当前位置: 首页 > news >正文

Map 查找表

Map体现的结构是一个多行两列的表格,其中左列称为key,右列称为value.

  • Map总是成对保存数据,并且总是根据key获取对应的value.因此我们可以将查询的条件作为key查询对应的结果作为value保存到Map中.

  • Map有一个要求:key不允许重复(equals比较的结果)

java.util.Map接口,是所有Map的顶级接口,规定了Map的相关功能.

常用实现类:

  • java.util.HashMap:称为散列表,使用散列算法实现的Map,当今查询速度最快的数据结构.

  • java.util.TreeMap:使用二叉树实现的Map

package map;import java.util.HashMap;
import java.util.Map;/*** java.util.Map接口  查找表* Map体现的结构像是一个多行两列的表格,其中左列称为key,右列称为value* Map总是成对儿(key-value键值对)保存数据,并且总是根据key获取其对应的value** 常用实现类:* java.util.HashMap:称为散列表,使用散列算法实现的Map,当今查询速度最快的*                   数据结构。*/
public class MapDemo {public static void main(String[] args) {Map<String,Integer> map = new HashMap<>();/*V put(K k,V v)将给定的键值对儿存入MapMap有一个要求,即:Key不允许重复(Key的equals比较)因此如果使用重复的key存入value,则是替换value操作,此时put方法的返回值就是被替换的value。否则返回值为null。*//*注意,如果value的类型是包装类,切记不要用基本类型接收返回值,避免因为自动拆箱导致的空指针*/Integer value = map.put("语文",99);System.out.println(value);//nullmap.put("数学",98);map.put("英语",97);map.put("物理",96);map.put("化学",98);System.out.println(map);value = map.put("物理",66);System.out.println(value);//96,物理被替换的值System.out.println(map);/*V get(Object key)根据给定的key获取对应的value。若给定的key不存在则返回值为null*/value = map.get("语文");System.out.println("语文:"+value);value = map.get("体育");System.out.println("体育:"+value);//nullint size = map.size();System.out.println("size:"+size);/*V remove(Object key)删除给定的key所对应的键值对,返回值为这个key对应的value*/value = map.remove("语文");System.out.println(map);System.out.println(value);/*boolean containsKey(Object key)判断当前Map是否包含给定的keyboolean containsValue(Object value)判断当前Map是否包含给定的value*/boolean ck = map.containsKey("英语");System.out.println("包含key:"+ck);boolean cv = map.containsValue(97);System.out.println("包含value:"+cv);}
}

Map的遍历

Map支持三种遍历方式:

  • 遍历所有的key

  • 遍历所有的键值对

  • 遍历所有的value(相对不常用)

package map;import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;/*** Map的遍历* Map提供了三种遍历方式* 1:遍历所有的key* 2:遍历每一组键值对* 3:遍历所有的value(不常用)*/
public class MapDemo2 {public static void main(String[] args) {Map<String,Integer> map = new HashMap<>();map.put("语文",99);map.put("数学",98);map.put("英语",97);map.put("物理",96);map.put("化学",98);System.out.println(map);/*遍历所有的keySet keySet()将当前Map中所有的key以一个Set集合形式返回。遍历该集合就等同于遍历了所有的key*/Set<String> keySet = map.keySet();for(String key : keySet){System.out.println("key:"+key);}/*遍历每一组键值对Set<Entry> entrySet()将当前Map中每一组键值对以一个Entry实例形式存入Set集合后返回。java.util.Map.EntryEntry的每一个实例用于表示Map中的一组键值对,其中有两个常用方法:getKey()和getValue()*/Set<Map.Entry<String,Integer>> entrySet = map.entrySet();for(Map.Entry<String,Integer> e : entrySet){String key = e.getKey();Integer value = e.getValue();System.out.println(key+":"+value);}/*JDK8之后集合框架支持了使用lambda表达式遍历。因此Map和Collection都提供了foreach方法,通过lambda表达式遍历元素。*/map.forEach((k,v)-> System.out.println(k+":"+v));/*遍历所有的valueCollection values()将当前Map中所有的value以一个集合形式返回*/Collection<Integer> values = map.values();
//        for(Integer i : values){
//            System.out.println("value:"+i);
//        }/*集合在使用foreach遍历时并不要求过程中不能通过集合的方法增删元素。而之前的迭代器则有此要求,否则可能在遍历过程中抛出异常。*/values.forEach(i -> System.out.println("value:"+i));}
}

总结

java.util.Map 查找表

特点:体现的结构是一个多行两列的表格,其中左列称为key,右列称为value。

Map中的key不允许重复。判定重复的标准是根据key的equals方法判定的。

常用的实现类:java.util.HashMap 散列表

常用方法:

V put(K k,V v):向Map中添加一组键值对,使用重复的key存入新的value时,那么就是替换value操作。此时put方法 返回值为被替换的value。否则返回值为null。

V get(K k):根据给定的key获取对应的value。如果给定的key不存在则返回值为null

V remove(K k):根据给定key从Map中删除对应的键值对,返回值为该key对应的value。

int size():返回当前Map中的元素个数

void clear():清空Map

boolean containsKey(Object key):判断当前的Map是否包含给定的key

boolean containsValue(Object value):判断当前Map是否包含给定的value

Set keySet():遍历key使用的方法,将当前Map中所有的key以一个Set集合形式返回

Set entrySet():遍历每一组键值对的方法,将当前Map中每一组键值对(Entry实例)以一个Set集合形式返回

Collection values():遍历所有value使用的方法,将当前Map中所有的value以一个集合形式返回

forEach():基于lambda表达式遍历Map

相关文章:

Map 查找表

Map体现的结构是一个多行两列的表格,其中左列称为key,右列称为value.Map总是成对保存数据,并且总是根据key获取对应的value.因此我们可以将查询的条件作为key查询对应的结果作为value保存到Map中.Map有一个要求:key不允许重复(equals比较的结果)java.util.Map接口,是所有Map的顶…...

python--石头剪刀布游戏(列表)

本使用了下面几篇文章的知识&#xff1a; python(8)--列表初阶使用_码银的博客-CSDN博客 python(7)--if语句_码银的博客-CSDN博客 一、学习目标 利用列表实现石头剪刀布游戏 二、实验环境 Pycharm社区版、win11 三、代码 先贴代码&#xff0c;有需要的直接拿&#xff0c;想要进…...

Project Caliper:目标是打造最佳VR手柄

一提到Valve Index&#xff0c;人们很快联想到它的五指追踪VR手柄&#xff0c;这款支持手势追踪和体感反馈的高端VR手柄&#xff0c;是市面上最强大的C端VR手柄之一。尽管如此&#xff0c;它依然存在许多缺陷&#xff0c;比如配备的小型摇杆质量不佳、集成式设计不利于维修、人…...

自动驾驶:BEV开山之作LSS(lift,splat,shoot)原理代码串讲

自动驾驶&#xff1a;BEV开山之作LSS&#xff08;lift,splat,shoot&#xff09;原理代码串讲前言Lift参数创建视锥CamEncodeSplat转换视锥坐标系Voxel Pooling总结前言 目前在自动驾驶领域&#xff0c;比较火的一类研究方向是基于采集到的环视图像信息&#xff0c;去构建BEV视角…...

C# 如何实现对“属性”的扩展

目录一、为什么要扩展属性二、如何做&#xff1f;一、为什么要扩展属性 属性是一个类的特征&#xff0c;随着开发的不断升级&#xff0c;这种特征可能在一直变化&#xff0c;有时候为了向下兼容&#xff0c;一般属性的数量都是直接递增的。 例如&#xff1a;一个Person类&…...

EBS 物料属性 先后台对应关系 MTL_SYSTEM_ITEMS_B

Introductionweb The basic table mtl_system_items_b is the basic table of item in ERP system and there are a lot of columns,but I don’t know used of each column,particularly the column like %_flag. The reason of general exception may be because the ‘%_fl…...

MYSQL数据库-主从复制(原理及搭建)

文章目录1 概述2 原理3 搭建3.1 主库配置3.2 从库配置1 概述 主从复制是指将主数据库的DDL和 DML操作通过二进制日志传到从库服务器中&#xff0c;然后在从库上对这些日志重新执行(也叫重做)&#xff0c;从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进…...

3GPP-NR Band25标准定义频点和信道(3GPP V17.7.0 (2022-12))

Reference test frequencies for NR operating band n25 Table 4.3.1.1.1.25-1: Test frequencies for NRoperating band n25 and SCS 15 kHz CBW [MHz]carrierBandwidth...

微信小程序 之 原生开发

目录 一、前期预备 1. 预备知识 ​2. 注册账号 - 申请AppID 3. 下载小程序开发工具 4. 小程序项目结构 ​5. 小程序的MVVM架构 二、创建小程序项目 1. 查看注册的appId ​2. 创建项目 ​3. 新建页面 01 - 创建text页面文件夹 ​02 - 新建text的page ​03 - 在app.json中配置 ​…...

常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件

常用vim命令和vim基本使用及Linux用户的管理&#xff0c;用户和组相关文件1. vim 的基本介绍和使用1.1 vim的三种模式1.2 常用vim命令【小白】1.3 Vim键盘图&#xff1a;2. Linux用户管理2.1 添加用户2.2 删除用户2.3 修改账号3. Linux系统用户组的管理4. 用户和组相关文件4.1 …...

阿里云服务器部署前后端分离项目

阿里云服务器部署 【若依】 前后端分离项目 文章目录一、域名解析二、服务器操作系统置空三、部署方式四、需安装环境配置五、Linux服务器安装相应内容&#xff08;具体安装步骤&#xff09;&#xff08;一&#xff09;安装JDK&#xff08;3种方式&#xff09;使用Yum安装&…...

内核经典数据结构list 剖析

前言&#xff1a;linux内核中有很多经典的数据结构&#xff0c;list(也称list_head)为其中之一&#xff0c;这些数据结构都是使用C语言实&#xff0c;并且定义和实现都在单独的头文件list.h中。可以随时拿出来使用。list.h的定义不同linux发行版本路径不同,我们可以在/usr/incl…...

华为OD机试 - 考优选核酸检测点(Python)| 真题+思路+考点+代码+岗位

优选核酸检测点 题目 张三要去外地出差,需要做核酸,需要在指定时间点前做完核酸, 请帮他找到满足条件的核酸检测点。 给出一组核酸检测点的距离和每个核酸检测点当前的人数给出张三要去做核酸的出发时间 出发时间是 10 分钟的倍数 同时给出张三做核酸的最晚结束时间题目中…...

在魔改PLUS-F5280开发板上使用合封qsp iflash

文章目录引言硬件调整软件调整总结引言 由于目前灵动官网暂未发布正式版的PLUS-F5280开发板&#xff0c;可以使用现有的PLUS-F5270 v1.2开发板&#xff08;下文简称PLUS-F5270开发版&#xff09;替换为MM32F5280微控制器芯片&#xff0c;改装为PLUS-F5280开发板。本文记录了使…...

uni-app 瀑布流

效果图 一、组件 components/u-myWaterfall.vue <template><view class"u-waterfall"><view id"u-left-column" class"u-column"><slot name"left" :leftList"leftList"></slot></view&…...

华为OD机试 - 去除多余空格(Python)| 真题+思路+考点+代码+岗位

去除多余空格 题目 去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词的起始和结束下标。 条件约束: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQABYuJD-1676475739950)(https://…...

MyBatis 二级缓存简单使用步骤

1、二级缓存使用 在 MyBatis 中默认二级缓存是不开启的&#xff0c;如果要使用需手动开启。在 mybatis-config.xml 配置文件中设置 cacheEnabled true &#xff0c;配置如下&#xff1a; <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE c…...

kubeadmin kube-apiserver Exited 始终起不来查因记录

kubeadmin kube-apiserver Exited 始终起不来查因记录 [rootk8s-master01 log]# crictl ps -a CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID POD b7af23a98302e …...

论文投稿指南——中文核心期刊推荐(工程材料学)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…...

【动态规划】背包问题题型及方法归纳

背包问题的种类 背包问题是在规定背包容量为j的前提下&#xff0c;每个物品对应的体积为v[i]&#xff0c;价值为w[i]&#xff0c;从物品0到物品i中选择物品放入背包中&#xff0c;找出符合某种要求的价值。 &#xff08;1&#xff09;背包问题种类 01背包&#xff1a;每种物…...

全球十大资质正规外汇期货平台排行榜(最新版汇总)

外汇期货简称为FxFut&#xff0c;是“Forex Futures”的缩写&#xff0c;是在集中形式的期货交易所内&#xff0c;交易双方通过公开叫价&#xff0c;以某种非本国货币买进或卖出另一种非本国货币&#xff0c;并签订一个在未来的某一日期根据协议价格交割标准数量外汇的合约。 …...

使用Paramiko时遇到的一些问题

目录 1.背景 2.问题合集 1&#xff09;“bash: command not found” 2&#xff09;Paramiko中正常的输入&#xff0c;却到了stderr&#xff0c;而stdout是空 3&#xff09;命令实际是alias 1.背景 在自动化脚本中&#xff0c;使用了库Paramiko&#xff0c;远程SSH到后台服…...

数据预处理(无量纲化、缺失值、分类特征、连续特征)

文章目录1. 无量纲化1.1 sklearn.preprocessing.MinMaxScaler1.2 sklearn.preprocessing.StandardScaler2. 缺失值3. 分类型特征4. 连续型特征数据挖掘的五大流程包括&#xff1a;获取数据数据预处理特征工程建模上线 其中&#xff0c;数据预处理中常用的方法包括数据标准化和归…...

【C#基础】C# 运算符总结

序号系列文章2【C#基础】C# 基础语法解析3【C#基础】C# 数据类型总结4【C#基础】C# 变量和常量的使用文章目录前言运算符1&#xff0c;算术运算符2&#xff0c;布尔逻辑运算符3&#xff0c;位运算符4&#xff0c;关系运算符5&#xff0c;赋值运算符6&#xff0c;其他运算符7&am…...

存储性能软件加速库(SPDK)

存储性能软件加速库SPDK存储加速存储性能软件加速库&#xff08;SPDK&#xff09;SPDK NVMe驱动1.用户态驱动1&#xff09;UIO2&#xff09;VFIOIOMMU&#xff08;I/O Memory Management Unit&#xff09;3&#xff09;用户态DMA4&#xff09;大页&#xff08;Hugepage&#xf…...

微服务(五)—— 服务注册中心Consul

一、引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency>二、配置yml文件 server:port: 8006spring:application:name: cloud-payment-con…...

冷冻电镜 - ChimeraX Density Map 密度图 操作

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/129055160 由冷冻电镜所生成的Volume,需要观察其内部结构,使用ChimeraX进行操作。 加载Volumes,例如my_volume.mrc 效果如下: 高斯滤波 在命令行(Co…...

Matlab 点云旋转之轴角式

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 三维空间中表示旋转的方法有很多种,轴角式是其中非常经典的一种表示方式。虽然欧拉角表示旋转的方法很是常用,但欧拉角存在着万向锁这个问题,因此轴角式旋转在旋转使用中更为合适。其原理也很是明了,如下所述:…...

2023美赛数学建模资料思路模型

美赛我们为大家准备了大量的资料&#xff0c;我们会在比赛期间给大家分析美题目和相关的思路 全文都是干货&#xff0c;大家仔细阅读&#xff0c;资料文末自取&#xff01; 首先我们来看美赛23年题型的一个变化&#xff1a; 美赛23年题目变化&#xff1a; A题&#xff1a;连…...

Nginx配置HTTP强制跳转到HTTPS

https 访问我们的测试域名 https://www.xxx.com 站点&#xff0c;但是当我们直接在浏览器地址栏中直接输入 www.xxx.com 的时候却发现进入的是 http 协议的网站&#xff0c;这与我们的初衷不一致。由于浏览器默认访问域名使用的是80端口&#xff0c;而当我们使用SSL证书后&…...

青岛网站建设华夏/全国今日新增疫情

ES2017 标准引入了 async 函数&#xff0c;使得异步操作变得更加方便。 async 先说一下async的用法&#xff0c;它作为一个关键字放到函数前面&#xff0c;用于表示函数是一个异步函数&#xff0c;因为async就是异步的意思&#xff0c; 异步函数也就意味着该函数的执行不会阻塞…...

网站建设用户调查问卷/杭州seo中心

题型: 编程题 语言: G;GCC Description “丑数”是指除了质因子2,3&#xff0c;5&#xff0c;不含其它质因子的正整数&#xff0c;例如由小到大前10个“丑数”为 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, ... 非“丑数”的前10个数为 7, 11, 13, 14, 17, 19, 21, 22, 23, 26, ... 现…...

郑州网站建设选微锐x/商业软文案例

(1)String类是不可变类&#xff0c;即创建一个String对象后&#xff0c;包含在此对象中的字符序列是不可改变的&#xff0c;直至对象被销毁 String a”123”; a”456”; System.out.println(a);//结果是456 解释&#xff1a;重新对a赋值&#xff0c;并不是改变原来堆中实例对…...

不用开源程序怎么做网站/域名站长工具

一&#xff1a;select模型 二&#xff1a;WSAAsyncSelect模型 三&#xff1a;WSAEventSelect模型 四&#xff1a;Overlapped I/O 事件通知模型 五&#xff1a;Overlapped I/O 完成例程模型 六&#xff1a;IOCP模型 本文简单介绍了当前Windows支持的各种Socket I/O模型&#x…...

asp网站制作实例教程/如何做品牌宣传与推广

数据库之存储过程和存储函数(六) 什么是存储过程 ​ 存储过程是一组为了完成某项特定功能的SQL语句集&#xff0c;其实质就是一段存储在数据库中的代码。它可以由声明式的sql语句和过程式sql语句组成。 优点 1. 可以增强sql语言的功能和灵活性 2. 良好的封装性3. 高性能4. 减少…...

做网站ui主要研究内容/网络营销推广工具有哪些

可恶啊&#xff0c;习惯了 vue的 数据双向绑定了 &#xff0c;有点不习惯小程序的模式了 虽然小程序 也是mvvm的设计方式 但是却没有 v-model 这么简便的方法 不过也越来越觉得 不能依赖框架&#xff0c;还是提升自己基础能力最好了 虽然不能双向绑定 但是可以通过其他的方式 …...