java-map集合的基本使用

一、HashMap集合

1.HashMap示意图

在这里插入图片描述

2.HashMap的特点

在这里插入图片描述

3.HashMap的常用方法

①.put(K key, V value) 将键(key)/值(value)映射存放到Map集合中

public class Test {public static void main(String[] args) {HashMap<String, Integer> map = new HashMap<String, Integer>();map.put("Tom", 100);//向HashMap中添加元素  }
}

②.get(Object key) 返回指定键所映射的值,没有该key对应的值则返回 null,即获取key对应的value。

public class Test {public static void main(String[] args) {HashMap<String, Integer> map = new HashMap<String, Integer>();map.put("Tom", 100);map.put("Tom", 0);int score = map.get("Tom");// 获取key对应的valueSystem.out.println(score);// key不允许重复,若重复,则覆盖已有key的value}
}

在这里插入图片描述
可知,之前加入的value已被覆盖,前面的观点得证
③. size() 返回Map集合中数据数量,准确说是返回key-value的组数。

public class Test {public static void main(String[] args) {HashMap<String, Integer> map = new HashMap<String, Integer>();map.put("Tom", 100);map.put("Jim", 90);map.put("Sam", 91);System.out.println(map.size());}
}

④:clear() 清空Map集合

public class Test {public static void main(String[] args) {HashMap<String, Integer> map = new HashMap<String, Integer>();map.put("Tom", 100);map.put("Jim", 90);map.put("Sam", 91);map.clear();// 清空map中的key-valueSystem.out.println(map.size());}
}

⑤:isEmpty () 判断Map集合中是否有数据,如果没有则返回true,否则返回false

public class Test {public static void main(String[] args) {HashMap<String, Integer> map = new HashMap<String, Integer>();map.put("Tom", 100);map.put("Jim", 90);map.put("Sam", 91);map.clear();// 清空map中的key-valueSystem.out.println(map.isEmpty());}
}

⑥:remove(Object key) 删除Map集合中键为key的数据并返回其所对应value值。

public class Test {public static void main(String[] args) {HashMap<String, Integer> map = new HashMap<String, Integer>();map.put("Tom", 100);map.put("Jim", 90);map.put("Sam", 91);map.remove("Tom");System.out.println(map);}
}

⑦:containsKey(Object key) Hashmap判断是否含有key

public class Test {public static void main(String[] args) {HashMap<String, Integer> map=new HashMap<>();/*boolean*///判断map中是否存在这个keySystem.out.println(map.containsKey("DEMO"));//falsemap.put("DEMO", 1);System.out.println(map.containsKey("DEMO"));//true}
}

⑧:containsValue(Object value) Hashmap判断是否含有value:

public class Test {public static void main(String[] args) {HashMap<String, Integer> map=new HashMap<>();/*boolean*///判断map中是否存在这个valueSystem.out.println(map.containsValue(1));//falsemap.put("DEMO", 1);System.out.println(map.containsValue(1));//true}
}

⑨:Hashmap添加另一个同一类型的map下的所有数据

public class Test {public static void main(String[] args) {HashMap<String, Integer> map=new HashMap<>();HashMap<String, Integer> map1=new HashMap<>();/*void*///将同一类型的map添加到另一个map中map1.put("DEMO1", 1);map.put("DEMO2", 2);System.out.println(map);//{DEMO2=2}map.putAll(map1);System.out.println(map);//{DEMO1=1, DEMO2=2}}
}

⑩:Hashmap替换这个key的value

public class Test {public static void main(String[] args) {HashMap<String, Integer> map=new HashMap<>();/*value*///判断map中是否存在这个keymap.put("DEMO1", 1);map.put("DEMO2", 2);System.out.println(map);//{DEMO1=1, DEMO2=2}System.out.println(map.replace("DEMO2", 1));//2System.out.println(map);//{DEMO1=1, DEMO2=1}}
}

二、TreeMap集合

1.TreeMap的特点

在这里插入图片描述

2.TreeMap基本使用

TreeMap中的元素默认按照keys的自然排序排列。
①:使用无参构造器创建对象
对Integer来说,其自然排序就是数字的升序;对String来说,其自然排序就是按照字母表排序。

public static void main(String[] args) {Map<String, Integer> map = new TreeMap<>();map.put("orange", 1);map.put("apple", 2);map.put("pear", 3);System.out.println(map);
}
public static void main(String[] args) {Map<Integer, String> map = new TreeMap<>();map.put(3, "val");map.put(2, "val");map.put(1, "val");map.put(5, "val");map.put(4, "val");System.out.println(map);
}

②:Comparable接口
使用TreeMap时,放入的Key必须实现Comparable接口。String、Integer这些类已经实现了Comparable接口,因此可以直接作为Key使用。作为Value的对象则没有任何要求。
如果作为Key的class没有实现Comparable接口,那么,必须在创建TreeMap时同时指定一个自定义排序算法:

public class Main {public static void main(String[] args) {Map<Person, Integer> map = new TreeMap<>(new Comparator<Person>() {public int compare(Person p1, Person p2) {return p1.name.compareTo(p2.name);}});map.put(new Person("Tom"), 1);map.put(new Person("Bob"), 2);map.put(new Person("Lily"), 3);for (Person key : map.keySet()) {System.out.println(key);}// {Person: Bob}, {Person: Lily}, {Person: Tom}System.out.println(map.get(new Person("Bob"))); // 2}
}class Person {public String name;Person(String name) {this.name = name;}public String toString() {return "{Person: " + name + "}";}
}

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

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

相关文章

【笔记】【电子科大 离散数学】 2.命题

文章目录 数理逻辑定义 命题定义不是命题的例子 原子命题和复合命题定义约定 命题联结词否定联结词定义例子真值表 合取联结词定义例子真值表 析取联结词定义例子 蕴含联结词定义例子真值表 等价联结词定义例子真值表 命题符号化及其应用速查表格优先级复合命题符号化布尔检索演…

【大数据】Flink SQL 语法篇(四):Group 聚合、Over 聚合

Flink SQL 语法篇&#xff08;四&#xff09;&#xff1a;Group 聚合、Over 聚合 1.Group 聚合1.1 基础概念1.2 窗口聚合和 Group 聚合1.3 SQL 语义1.4 Group 聚合支持 Grouping sets、Rollup、Cube 2.Over 聚合2.1 时间区间聚合2.2 行数聚合 1.Group 聚合 1.1 基础概念 Grou…

【汽车电子】万字详解汽车标定与XCP协议

XCP协议基础 文章目录 XCP协议基础一、引言1.1 什么是标定1.2 什么时候进行标定1.3 标定的意义 二、XCP协议简介2.1 xcp简介2.2 XCP如何加快开发过程&#xff1f;2.3 XCP的主要作用 三、XCP工作过程3.1 工作过程3.2 通讯模型3.3 测量与标定 四、XCP报文解析4.1 数据包报文格式4…

vue基础操作(vue基础)

想到多少写多少把&#xff0c;其他的想起来了在写。也写了一些css的 input框的双向数据绑定 html <input value"123456" type"text" v-model"account" input"accou" class"bottom-line bottom" placeholder"请输入…

pytorch -- torch.nn下的常用损失函数

1.基础 loss function损失函数&#xff1a;预测输出与实际输出 差距 越小越好 - 计算实际输出和目标之间的差距 - 为我们更新输出提供依据&#xff08;反向传播&#xff09; 1. L1 torch.nn.L1Loss(size_averageNone, reduceNone, reduction‘mean’) 2. 平方差&#xff08;…

探索水下低光照图像检测性能,基于YOLOv6全系列【n/s/m/l】参数模型开发构建海底生物检测识别分析系统

底这类特殊数据场景下的检测模型开发相对来说比较少&#xff0c;在前面的博文中也有一些涉及&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a; 试探索水下目标检测&#xff0c;基于yolov5轻量级系列模型n/s/m开发构建海底生物检测系统》 《基于YOLOv5C3CBAMCBAM注意力…

IAA增收如何更上一层楼?NetMarvel 4招让您致胜全球

成本上涨&#xff0c;收益收紧&#xff0c;IAA厂商的增收似乎越来越难走&#xff1f;但在重定向广告被玩得如火朝天的当下&#xff0c;IAA一定是持续增长的市场。广告主、品牌方的需求只会越来越多&#xff0c;你只要确保圈住真实用户&#xff0c;流量即变现是迟早的事。 海外…

SocketWeb实现小小聊天室

SocketWeb实现小小聊天室 消息推送的常见方式轮询长轮询SSE&#xff08;server-sent event&#xff09;&#xff1a;服务器发送事件WebSocketWebSocket简介WebSocket API 实现小小聊天室实现流程消息格式客户端-->服务端服务端-->客户端 消息推送的常见方式 轮询 浏览器…

matlab经验模式分解的R波检测算法

1、内容简介 略 56-可以交流、咨询、答疑 2、内容说明 略 心血管疾病是威胁人类生命的主要疾病之一&#xff0c;而心电信号&#xff08;electrocardiogram, ECG&#xff09; 则是评价心脏功能的主要依据&#xff0c;因此&#xff0c;关于心电信号检测处理的研究一直为各方所…

APIFox-自动获取登录状态操作

APIFox-自动获取登录状态操作 概述 作为纯后端开发码农&#xff0c;每次接口开发完的调试很重要&#xff0c;因此每次重复的手动获取登陆状态Token或者直接放行就太麻烦了。 APIFox提供了前置操作&#xff0c;可以很方便的自动获取登录状态&#xff0c;节省大量重复劳动时间。…

python利用selenium实现大麦网抢票

一、selenium原理介绍 Selenium是一个用于Web[应用程序](https://link.juejin.cn/?targethttps%3A%2F%2Fbaike.baidu.com%2Fitem%2F%25E5%25BA%2594%25E7%2594%25A8%25E7%25A8%258B%25E5%25BA%258F%2F5985445%3FfromModule%3Dlemma_inlink "https://baike.baidu.com/item…

【前端素材】推荐优质后台管理系统Uena平台模板(附源码)

一、需求分析 后台管理系统&#xff08;或称作管理后台、管理系统、后台管理平台&#xff09;是一种专门用于管理网站、应用程序或系统后台运营的软件系统。它通常由一系列功能模块组成&#xff0c;为管理员提供了管理、监控和控制网站或应用程序的各个方面的工具和界面。以下…

Folx Pro Mac中文p破解版如何使用?为您带来Folx Pro 详细使用教程!

​ Folx pro 5 中文版是mac上一款功能强大的老牌加速下载软件&#xff0c;新版本的Folx pro整体界面非常的简洁和漂亮&#xff0c;具有非常好用的分类管理功能&#xff0c;支持高速下载、定时下载、速度控制、iTunes集成等功能。Folx pro兼容主流的浏览器&#xff0c;不但可以下…

面试redis篇-08数据淘汰策略

原理 当Redis中的内存不够用时,此时在向Redis中添加新的key,那么Redis就会按照某一种规则将内存中的数据删除掉,这种数据的删除规则被称之为内存的淘汰策略。 Redis支持8种不同策略来选择要删除的key: noeviction: 不淘汰任何key,但是内存满时不允许写入新数据,默认就是…

机器学习——线性代数中矩阵和向量的基本介绍

矩阵和向量的基本概念 矩阵的基本概念&#xff08;这里不多说&#xff0c;应该都知道&#xff09; 而向量就是一个特殊的矩阵&#xff0c;即向量只有一列&#xff0c;是个n*1的矩阵 注&#xff1a;一般矩阵用大写字母表示&#xff0c;向量用小写字母表示 矩阵的加减运算 两个…

计网Lesson14 - 传输层协议头分析

文章目录 1. 传输层概述1.1 传输层的作用1.2 传输层中两个重要协议1.2.1 TCP1.2.2 UDP1.2.3. 因特网中典型应用使用的运输层协议 1.3 运输层端口号1.4 UDP和TCP的对比 2. UDP报文段格式UDP首部构成 3. TCP报文段格式TCP首部构成序号和确认号的计算 1. 传输层概述 1.1 传输层的…

Typora结合PicGo + 使用Github搭建个人免费图床

文章目录 一、国内图床比较二、使用Github搭建图床三、PicGo整合Github图床1、下载并安装PicGo2、设置图床3、整合jsDelivr具体配置介绍 4、测试5、附录 四、Typora整合PicGo实现自动上传 每次写博客时&#xff0c;我都会习惯在Typora写好&#xff0c;然后再复制粘贴到对应的网…

数据结构--双向链表专题

目录 1. 双向链表的结构2. 实现双向链表预先的准备初始化尾插、头插尾删、头删查找在pos位置之后插⼊数据删除pos位置的数据 3. 顺序表和双向链表的分析 1. 双向链表的结构 注意&#xff1a;这里的“带头”跟前面我们说的“头结点”是两个概念&#xff0c;为了更好的理解直接称…

【教程】 iOS混淆加固原理篇

目录 摘要 引言 正文 1. 加固的缘由 2. 编译过程 3. 加固类型 1) 字符串混淆 2) 类名、方法名混淆 3) 程序结构混淆加密 4) 反调试、反注入等一些主动保护策略 4. 逆向工具 5. OLLVM 6. IPA guard 7. 代码虚拟化 总结 摘要 本文介绍了iOS应用程序混淆加固的缘由…

文献阅读:Transformers are Multi-State RNNs

文献阅读&#xff1a;Transformers are Multi-State RNNs 1. 内容简介2. 方法介绍 1. 基础回顾 1. RNN2. Transformer 2. Transformer解构 1. MSRNN2. Transformer 3. TOVA 1. 现有转换策略2. TOVA 3. 实验考察 & 结论 1. 实验设计2. 实验结果 1. LM2. 长文本理解3. 文本生…