/**
* 简单的介绍一下我们接下来准备学习的集合MAP集合
*
* Map集合的简单概述:
* 其中的健是不能进行重复的,而且每一健只能映射一个值,简单的说就是K与V是一一对应的,不能有其他的关系,
* 但是我们注意到value值是可以进行重复的
* 所谓的映射就可以理解成一种我们小时候学习的一种对应关系
* 类比:Collections集合我们就理解成是单身狗,里面的元素只能存储一个值,而我们今天所学的MAP集合是一个元素当中
* 具有两个值,这两个值分别是健key和值value,因而我们称MAp为夫妻对儿集合,就是我们的一夫一妻制度,
*
* dcsc
* 理解:
* 1.Collections是单列集合,MAP是双列集合
* 2.凡是在dsdw
* java.util包当中的我们都可以认为是一个工具
* 3.同时我们要注意MAP同样也是一个接口,但是其接口是具有两个范型的,要区别于我们的Collection集合
* 4.Map<K,V>是含有两个范型的
* K:此映射所维护的健的类型
* V:映射值的类型
*
*
* 总结:
* java.util.Map<k,v>集合
* 集和的特点:
* 1是一个双列集合,一个元素包含两个值(一个key,一个value)
* 2集合当中的两个值数据类型是可以相同的,可以不通,随意的进行设置
* 3其中的k是不能重复的,v是可以重复的
* 4一个k对应一个v的值,是一种一一对应的关系
*
*
* ****************************************
* 二:map集合接口下面一些常用的实现类介绍
* 1.HashMap<K,V>:
* ①:同样的HashMap实现类的底层也是一个哈希表结构,此实现提供所有可选的映射操作,并允许使用null值和null键,
* 此类不保证映射的顺序,特别是他不保证该顺序恒久不变,而且是不同步的,也就是多线程的,多线程就意味着它的速度是非常快的,
* 如何理解不同步?
* 我们在做一件事情的时候,将这件事情分成多个步骤,我们每个人进行其中的一些操作,不是由一个人来完成的,这就是不同步
* 小知识:MAP接口的花溪表和链表列表实现,既有可预知的迭代升级,此实现与hashmAP的不同之处在于,后者维护着一个运行与所有条目的双重链接列表
* 此链接列表定义了迭代顺序跟迭代顺序,通常就是将键插入到映射中的顺序,
*
* 总结:
* java.util.HashMap
* 1.底层是哈希表结构,说到哈希表我们的第一反应就是快啊,你好你好你好,JDK1.8之前是数组+单向链表
* 之后就是数组+单向列表/红黑书-----红黑树的目的就是为了提高查询的速度,
* 2.HashMap集合是一个无序的集合,存储元素顺序和取出元素的顺序有可能不一致,
*
* java.util.LinkedHashMap
* 1.底层是一个哈希表+链表(保证了迭代顺序)
* 2.是一个有序的集合,存储元素和取出元素的顺序是一样的,具有存取一致的特点
*
* ******************************************
* 【Map集合当中的常用方法】:
* put就是将健值对进行添加,相当于其中的add方法
* 但是它的返回值是V,当哈希表当中的K健没有存放数据的时候,他的返回值为0,当K健的地方不为空值的时候,将对应的V
* 值进行返回,拿自己的进行代替
* 类比:我们去一个树墩栽树,当树墩的地方没有树的时候我们就将自己的树放到那个地方,然后进行培土浇水就ok了,但是如果想要栽树的树墩处有一颗枣树,而我们
* 想要在这个地方栽柳树,那么我们就必须将原来的枣树进行移除,将自己的柳树栽在原来的地方,也就是返回原来的枣树
*
* get(object key):返回指定键所映射的值,也就是valual,如果此映射不包含该健的映射关系,则返回null
*
* remove(object key):如果存在一个键的映射关系,则将其从此映射中移除
*
* containsKey(Object key):如果此映射包含指定健的映射关系,则返回ture,也就是判断是否包含key健
*
* 小知识:
* 我们之后称<k,v>为健值对,因为map来说我们如果存储数据就是存储一对一对的存储,就好比结婚登记一个样子都是一对一对
* 进行登记的,不能是单身进行登记的,哈哈,我们不妨叫她夫妻对,夫妻对也是有一个主导地位的,在这里就是key
*/

 //demo01();demo02();}
private static void demo02() {// TODO Auto-generated method stub/** remove(key):进行健值对的删除* * 注意:int不能接受返回值为null的值,用int接收就是我们经常说的自动拆箱的功能,*/Map<String,Integer> map=new HashMap<>();map.put("范冰冰", 168);map.put("范冰冰2", 165);System.out.println("添加之后集合当中的元素有:"+map);Integer in=map.remove("范冰冰");System.out.println(in);//删除的是夫妻对,但是返回的是value的值System.out.println("删除之后的集合元素:"+map);
}private static void demo01() {/**1.V put<K,V>:在Map集合当中进行添加元素*前面的V为返回值,当K不存在是,我们就返回null,如果存在,我们将原来的Value值返回**注意:*要想使用集合就必须创建实现类,通过实现类来进行方法的调用*/// TODO Auto-generated method stub//Map是一个集合,当我们需要从集合当中存数据的时候,我们就必须创建它的一个实现类,调用其中的方法,来添加元素Map<String,String> map=new HashMap<>();String a1=map.put("范冰冰", "杨幂");System.out.println(a1);//null:因为此时集合当中是没有数据的,直接进行存储就是可以的String a2=map.put("范冰冰", "杨幂2");System.out.println(a2);//杨幂:因为我们已经有了一个key值,所以我们再返回的时候就返回的是之前的那个key//映射的value值map.put("1","小龙女");map.put("2","小龙女");map.put("3躺着,","小龙女");System.out.println(map);//{1=小龙女, 2=小龙女, 3=小龙女, 范冰冰=杨幂2}
}

}

Map集合知识点(炸窝)相关推荐

  1. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合...

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

  2. Map集合遍历的四种方式理解和简单使用

    Map集合遍历的四种方式理解和简单使用 ~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值 1:无非就是通过map.keySet()获取到值,然后根据 ...

  3. Map 集合的坑你踩过几个?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「程序通事」 上一篇 List 踩坑文章 ...

  4. 编程坑太多,Map 集合怎么也有这么多坑?一不小心又踩了好几个!| 原力计划...

    作者 | 楼下小黑哥 头图 | CSDN下载自图虫 作为 List 集合好兄弟 Map,我们天天都在使用,一不小心就会踩坑. 今天我就来总结这些常见的坑,再捞自己一手,防止后续同学再继续踩坑. 本文设 ...

  5. java map date_时间转换与map集合

    从myEclipse中用java取出sql里面的数据时是转化为Result结果集对象来返回的,然后操作的时候用Map集合接收result对象的数据,然后进行对数据的操作,因为map里面的数据是Obje ...

  6. Java中Map集合如何理解(四)——精简

    目录 引言 概念 Map集合实现类 HashMap LinkedHashMap TreeMap 默认排序 自定义排序方式 常用API 遍历Map集合 键找值 键值对 Lambda表达式 结束语 引言 ...

  7. 2020-08-10 Mybatis配置、使用Map集合传递SQL参数、核心配置文件解析、给包取别名

    mybatis配置错误解析 注意!在Mapper.xml的配置文件中,namespace的路径要写成这种形式 <mapper namespace="com.wang.Dao.UserM ...

  8. Java基础 Map集合

    主要内容 Map集合 教学目标 能够说出Map集合特点 使用Map集合添加方法保存数据 使用"键找值"的方式遍历Map集合 使用"键值对"的方式遍历Map集合 ...

  9. Java集合知识点,看这篇就够了,还有月薪3万简历模板+BAT面试题,帮你进大厂!

    Java集合知识点,猿人花了几天时间整理,还有Java超神之路脑图.月薪3万Java优秀简历模板.全网最全一线大厂Java笔试面试题.1000+本Java开发精华电子书送给大家,希望大家认真学习哦! ...

最新文章

  1. 33.搜索旋转排序数组
  2. 如何对DB2数据库做性能分析?
  3. 嵌入式培训学习历程第二十二天
  4. TK:vtkCameraActor用法实战
  5. Java中实现多线程的两种方式之间的区别
  6. 执行Hive的查询语句报错:java.lang.IllegalArgumentException: Does not contain a valid host:port authority: loca
  7. python课程设计
  8. java代码进行短信接收_自动化测试-自动获取手机短信验证码
  9. linux车机carplay模块,卸甲科技UI2.0版本Linux车机发布
  10. 【Wing Loss】《Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks》
  11. Redis热点Key发现及常见解决方案总结
  12. 计算机双工模式,100M 全双工、100M 半双工、10M全双工几种模式分别测试
  13. python内存地址不变,关于python内存地址问题
  14. 从复旦危化品中学到的项目经验
  15. 使用伪类(before,after)给元素添加分割线(|)
  16. @JsonFormat将时间字符串2021-02-25T15:32:54+08:00解析成date
  17. oj 喵帕斯之天才算数少女
  18. Cesium获取延长线
  19. 第5章 电流镜与偏置技术
  20. IoT 恶意软件之争:如何从 DoS 攻击中加强 Linux 设备安全性

热门文章

  1. C/C++中near和far的区别
  2. php和python的多线程,Python多线程以及线程锁简单理解(代码)
  3. pycharm使用_后端开发使用pycharm的技巧
  4. 如何干净的删除vm_如何在macOS 10.15 Catalina绕过XProtect?
  5. 【转】Postman系列一:Postman安装及使用过程中遇到的问题
  6. Hadoop集群HDFS各节点磁盘使用率不平衡,使用balancer做数据平衡
  7. 数据结构与算法 - 递归回溯(迷宫问题)
  8. java中乐观锁_Java中乐观锁与悲观锁的实现
  9. 【Python学习】 - sklearn学习 - KNN
  10. 【POJ - 1741】Tree(树分治,容斥,点分治,模板题)