Map基本介绍和Map方法

article/2025/8/5 9:42:49

Map接口特点

  • Map接口特点(JDK8的Map接口特点)

    • Map中key不可以重复,原因和HashSet一样,重复了后面添加的会覆盖前面添加的数据

    • Map中key可以为null,但只能有一个,因为后面添加的数据会覆盖前面添加的数据,value为null,可以有多个

    • key和value为一对一关系,通过key总能找到对应的value

    • 常用类String类作为Map的key

    • Map与Collection并列存在。用于保存具有映射关系的数据:Key - Value

import java.util.HashMap;
import java.util.Map;
​
public class Map01 {public static void main(String[] args) {//创建对象,父类引用指向子类Map map = new HashMap();//添加数据map.put("Jack",18);map.put("Tom",18);map.put("Jack",20);  //覆盖map.put("Jack",18);map.put("",20);map.put("",25);map.put("CiCi","");map.put("XiXi","");map.put(new Object(),"大山");
​System.out.println(map.get("Jack"));System.out.println(map);}
}
/*
运行结果:
20
{=25, Tom=18, XiXi=, java.lang.Object@1b6d3586=大山, Jack=20, CiCi=}*/
  • Map存放数据的key - value示意图,一对k-v是放在一个Node的,有因为Node实现了Entry接口,有些书上也说 一堆k-v就是一个Entry

     

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
​
public class MapSource {public static void main(String[] args) {//创建对象,父类引用指向子类Map map = new HashMap();//添加数据map.put("Jack",18);map.put("Tom",18);map.put(new Car(),new Person());
​//1.K-V 最后是HashMap$Node node = newNode(hash, key, value, null)//2.K-V 为了方便程序员的遍历,还会常见EntrySet 集合,该集合存放的元素的类型 Entry,而一个Entry//  对象就有K,V EntrySet<Entry> 即: transient Set<Map.Entry<K,V>> entrySet;//3.entrySet 中,定义的类型是Map.Entry,但是实际上存放的还是 HashMap$Node//  这时因为static class Node<K,V> implements Map.Entry<K,V>//4.当把 HashMap$Node 对象 存放到 entrySet 就方便我们的比哪里,因为 Map.Entry 提供了重要的方法// K getKey();  V getValue();
​Set set = map.entrySet();System.out.println(set.getClass());for (Object o : set) {System.out.println(o.getClass());//向下转型Map.Entry entry = (Map.Entry) o;System.out.println(entry.getClass());System.out.println(entry.getKey()+ " - "+entry.getValue());}//获取KeySet set1 = map.keySet();System.out.println(set1);//获取ValueCollection values = map.values();System.out.println(values);}
}
class Car{
​
}
class Person{
​
}
/*
运行结果:
class java.util.HashMap$EntrySet
class java.util.HashMap$Node
class java.util.HashMap$Node
Tom - 18
class java.util.HashMap$Node
class java.util.HashMap$Node
com.yu.Map.Car@1b6d3586 - com.yu.Map.Person@4554617c
class java.util.HashMap$Node
class java.util.HashMap$Node
Jack - 18
[Tom, com.yu.Map.Car@1b6d3586, Jack]
[18, com.yu.Map.Person@4554617c, 18]*/

Map接口方法

  • Map体系图

     

import java.util.HashMap;
​
public class MapMethod {public static void main(String[] args) {
​HashMap hashMap = new HashMap();//put 添加hashMap.put("Jack","18");hashMap.put("Tom","20");hashMap.put("CiCi","19");hashMap.put("XiXi","21");System.out.println(hashMap);//remove 根据键删除映射关系hashMap.remove("Jack");System.out.println(hashMap);//get 根据键获取值System.out.println(hashMap.get("Tom"));//size 获取元素的个数System.out.println(hashMap.size());//isEmpty 判断个数是否为零System.out.println(hashMap.isEmpty());//containsKey 查找键是否存在System.out.println(hashMap.containsKey("CiCi"));//clear 清空hashMap.clear();System.out.println(hashMap);}
}
/*
运行结果:
{Tom=20, XiXi=21, Jack=18, CiCi=19}
{Tom=20, XiXi=21, CiCi=19}
20
3
false
true
{}*/


http://chatgpt.dhexx.cn/article/p1YxkkCA.shtml

相关文章

map方法的常见使用

const a [{ num: 张无忌, price: 123 },{ num: 周芷若, price: 666 },]console.log(a.map((item) > item.num))console.log(map方法a,a是不变的&#xff0c;要有人接受他才行)console.log(a)let b []b a.map((item) > item.num)console.log(b) ----------------------…

JS数组的map方法

map方法 不支持IE6、7 、8 array1.map(fn) array1.map(fn[,thisArg]) 注意&#xff1a; fn 必须是函数&#xff0c;如果不是函数则会报错 TypeError: undefined is not a function4 map()不会对空数组进行检测。map()不会改变原是数组 1 .理解 &#xff08;官方&#xff1…

数组的Map方法详解

作用 map()&#xff1a;创建一个新数组&#xff0c;这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。 语法 arr.map(callback(currentValue [, index [, array]]){ // Return element for new_array }[, thisArg]) callback&#xff1a;生成新数组元素…

javascript 中的map()方法

Vue全套学习免费视频&#xff1a;B站 小胖梅-的个人空间_哔哩哔哩_Bilibili 个人微信&#xff1a;renxm2023&#xff08;有前端技术群 提供技术问答 &#xff09; 接口数据映射 从接口得到数据 res: let r res.map(item > {return {title: item.name,sex: item.sex 1…

详解map(一)—— map的常用方法

前言 map是语言中常用的一个数据结构&#xff0c;其在不同语言中有着不同的实现的&#xff0c;现在我们看下在go中的底层实现。 更多内容分享&#xff0c;欢迎关注公众号&#xff1a;Go开发笔记 map源码 map的底层实现的源码位于runtime/map.go中&#xff0c;其相关方法的调…

Hive 分支判断 case函数 if函数

文章目录 CASE函数1.含义&#xff1a;2.示例&#xff1a; IF函数1.含义&#xff1a;2.示例&#xff1a; CASE函数 1.含义&#xff1a; CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END当a b,返回 c; 当 a d, 返回 e; 否则 返回 f 2.示例&#xff1a; emp_sex 表数据…

SQL语句--CASE函数写法的简单举例,及应用

SQL语句–CASE函数写法的简单举例&#xff0c;及应用 ---case函数的基本结构&#xff1a;case when...then...else... ----可以写也可以不写&#xff0c;按实际需求end【举个栗子_1】 eg1&#xff1a; --我想实现的效果&#xff1a; --当ID为1时&#xff0c;输出结果显示“…

MySQL:case函数和if函数的select用法(超详细)

case在select语句中的第一种用法&#xff1a; 这种写法只是针对某一个单一属性的具体值来做判断select id,name,(case sex when 0 then 男 when 1 then 女 else 未知 end)性别 from user; case在select语句中的第二种用法&#xff1a; case后面的判别依据关键字sex&#xff0c;…

oracle之case函数(case when then else end)用法

在写项目时&#xff0c;会遇到有字典项的业务&#xff0c;例如数字1代表男&#xff0c;数字2代表女&#xff0c;用做展示的时候&#xff0c;遇到对应数字就展示中文对应的男or女。 现在数据库创建一张表(message_mid)&#xff0c;字典项的字段是state&#xff1a;0代表办结&…

sql中的case函数的使用

以下内容首发于我的个人博客网站&#xff1a; http://riun.xyz/ 参考连接&#xff1a; https://www.cnblogs.com/HDK2016/p/8134802.html 一、分组时不同情况的处理 现有如下表&#xff1a; 需要按照大洲进行分组&#xff0c;最终得出如下结果&#xff1a; 可以使用case进行…

sql round函数(case函数)

注意&#xff1a;关于SELECT语句拼写注意事项 先列再纵&#xff0c;即&#xff1a;select 列 from tablename group by 纵 1. round(parm1,int parm2)&#xff1a;对parm1进行四舍五入操作&#xff0c;parm2为保留小数的有效位数&#xff1b; parm1 通常为double类型&#x…

sql中的case函数

在sql中case是一个控制流语句;类似于if语句 Case语句有两种形式:简单case语句与搜索case语句; 简单的case语句:可以检查表达式的值与一组唯一值的匹配: 语法: Case expression When value1 then returnvaluse1 When value2 then returnvaluse2 Else defaultvalue End Ca…

CASE函数

CASE函数 是一种多分支的函数&#xff0c;可以根据条件列表的值返回多个可能的结果表达式中的一个。 可用在任何允许使用表达式的地方&#xff0c;但不能单独作为一个语句执行。 分为&#xff1a; 简单CASE函数 搜索CASE函数 简单 CASE函数 1 2 3 4 5 6 CASE 测试表达式 WHE…

sql语句之case函数的用法

简单case函数语法&#xff1a; 是一种多分支的函数&#xff0c;可以根据条件列表的值返回多个可能的结果表达式中的一个。&#xff08;类似于if,else&#xff09; 简单 CASE函数&#xff1a; 计算测试表达式&#xff0c;按从上到下的书写顺序将测试表达式的值与每个WHEN子句的…

【MYSQL快速入门】case函数

case函数&#xff1a; 是一种多分支的函数&#xff0c;可以根据条件列表的值返回多个可能的结果表达式中的一个。 简单case函数&#xff1a; case 测试表达式 when 简单表达式1 then 结果表达式1 when 简单表达式2 then 结果表达式2.. when 简单表达式3 then 结果表达式n [e…

三分钟搞懂SQL的Case函数

文章标题 前言一: 使用语法作用一: 结合分组统计数据作用二: 分条件更新字段值作用三: 检查表中字段值是否一致作用四: 行转列(重点-面试常见)五:普通case函数和搜索case函数的区别六:总结 温馨提示: 本文大约1832字,阅读完大概需要2-3分钟,希望您能耐心看完,倘若你对该知识点已…

域名泛解析设置方法

域名泛解析是指&#xff1a;利用 *&#xff08;星号&#xff09;来做次级域名以实现所有的次级域名均指向同一 IP 地址。 例如你的域名是 a.com,设置泛解析&#xff08;.a.com&#xff09;后&#xff0c;所有该域名下的次级域名&#xff08;如 b.a.com&#xff09;都将指向与 a…

服务器泛解析网站,网站域名解析教程

我们这篇文章就讲一下域名解析的教程&#xff0c;在讲之前先介绍一些基础的概念&#xff0c;对域名解析过程有一个理解。 下面这段看不明白没关系&#xff0c;看不懂直接不看&#xff0c;跟着下面教程操作就可以了。 我们都知道&#xff0c;访问一个网站输入域名&#xff0c;比…

linux系统如何绑定域名解析,Linux系统网站如何站点部署域名泛解析绑定

做过站群或绑定多个二级域名的技术人员都知道&#xff0c;在windows下如果可绑定多个二级域名&#xff0c;一般都会用到默认站点的空主机头&#xff0c;只有绑定了80端口的空主机头&#xff0c;才可实现多个二级域名的绑定&#xff0c;或指定目录或301转发。但是&#xff0c;服…