Map集合知识点(炸窝)

/**
* 简单的介绍一下我们接下来准备学习的集合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}
}

}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

剑指offer:63-66记录

假设把某股票的价格按照时间先后顺序存储在数组中&#xff0c;请问买卖该股票一次可能获得的最大利润是多少&#xff1f; 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天&#xff08;股票价格 1&#xff09;的时候买入&#xff0c;在第 5 天&#xff08;股票价格 6&a…

【大总结3】leetcode解题总览(算法、剑指offer、SQL、多线程、shell)

3/22更新 剑指offer 题目链接 建议大部分题都会做&#xff0c;都能比较快速且准确的写出来。关于做题方式&#xff0c;我的建议是&#xff1a;一道一道刷即可&#xff0c;因为难度一般&#xff0c;不用系统的学习什么知识&#xff0c;遇到实在不会的就跳过即可。 我这里写了…

逆序存储【数据结构】

C语言中malloc是动态内存分配函数。 函数原型&#xff1a;void malloc(unsigned int num_bytes); 参数&#xff1a;num_bytes 是无符号整型&#xff0c;用于表示分配的字节数。 返回值&#xff1a;如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定)&#xff0…

为什么 main 方法是 public static void ?

main 方法是我们学习Java编程语言时知道的第一个方法&#xff0c;你是否曾经想过为什么 main 方法是 public、static、void 的。当然&#xff0c;很多人首先学的是C和C&#xff0c;但是在Java中main方法与前者有些细微的不同&#xff0c;它不会返回任何值&#xff0c;为什么 ma…

返回地址【数据结构】

小问题&#xff1f; 1.我们是如何根据地址值来找到我们对应的数据的&#xff1f; 详细陈述一下&#xff1a;当我们开辟一个整数类型&#xff0c;取名为a&#xff0c;假设地址空间是从数值为2000进行存储&#xff0c;并且我们假设整形占用4个字节&#xff0c;那么我们在内存中需…

【超级详细的小白教程】Hexo 搭建自己的博客

– 前言 这是一篇有关如何使用 Github Pages 和 Hexo 搭建属于自己独立博客的详尽教程&#xff0c;本人是软件工程专业本科生&#xff0c;目前只学习了C和C编程语言&#xff0c;对网站开发的有关知识几乎为零&#xff0c;这也是我搭建好自己的博客之后写的第一篇博客&#xff…

面向对象思想精华总结

一、三大特性 封装继承多态 二、类图 泛化关系 (Generalization)实现关系 (Realization)聚合关系 (Aggregation)组合关系 (Composition)关联关系 (Association)依赖关系 (Dependency) 三、设计原则 S.O.L.I.D其他常见原则 参考资料 一、三大特性 封装 利用抽象数据类型将数据…

数组名与指向数组的指针之间的联系与区别【数据结构】

我们遇到一个非常棘手的问题&#xff0c;这个问题就是&#xff0c;对于一堆数据来说&#xff0c;我们进行存储&#xff0c;放到一个指定的仓库当中&#xff0c;先前我们使用数组加加标的形式进行访问仓库当中的元素位置&#xff0c;但是呢&#xff0c;现在我们使用的是一个指针…

Struts2的action中处理JSONP方式提交的中文乱码问题:

昨天在做公司网站的时候出现了一个中文乱码问题&#xff0c;让我郁闷了一晚上和一上午&#xff0c;最后在网友的提示下&#xff0c;我终于解决了&#xff0c;现在写出来供后来的兄弟们参考&#xff1a; 1.问题是这样的&#xff0c;就是客户端是以JSONP的方式提交的数据&#x…

leetcode509. 斐波那契数(矩阵快速幂)

斐波那契数&#xff0c;通常用 F(n) 表示&#xff0c;形成的序列称为斐波那契数列。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0, F(1) 1 F(N) F(N - 1) F(N - 2), 其中 N > 1. 给定 N&#xff0c;计算 F(N)。…

insert函数的修改,

我们来看一下图片当中的第2个圆圈&#xff0c;为什么使用size来相加呢&#xff1f;我们知道一开始我们定义的初始空间为init_size;我们想一下啊&#xff0c;如果是第1次进行空间的增加&#xff0c;那么我们使用InIt来进行相加是可以的&#xff0c;但是当第2次想加我们再想开辟空…

leetcode520. py解字符串真是太残暴了

给定一个单词&#xff0c;你需要判断单词的大写使用是否正确。 我们定义&#xff0c;在以下情况时&#xff0c;单词的大写用法是正确的&#xff1a; 全部字母都是大写&#xff0c;比如"USA"。 单词中所有字母都不是大写&#xff0c;比如"leetcode"。 如果…

【数据结构】线性表大咖

循环链表的介绍 概念&#xff1a;链表的最后一个节点的指针&#xff0c;由原来的 空指针变成指向第1个节点的链表。 类比&#xff1a;我们进行串珠子的操作&#xff0c;将首尾通过线进行连接&#xff0c;同样我们的链表就是通过指针指向的方式进行连接&#xff0c;使其成为一…

leetcode551. 学生出勤记录 I

给定一个字符串来代表一个学生的出勤记录&#xff0c;这个记录仅包含以下三个字符&#xff1a; A : Absent&#xff0c;缺勤 L : Late&#xff0c;迟到 P : Present&#xff0c;到场 如果一个学生的出勤记录中不超过一个A(缺勤)并且不超过两个连续的L(迟到),那么这个学生会被奖…

一元多项式的表示和相加【数据结构】

一元多项式的表示和相加 运算只是一个定义&#xff0c;一切的一切&#xff0c;到最后都必须归咎于存储结构当中&#xff0c;实现物理存储&#xff0c;一元多项式包括数据对象数据关系以及数据之间的各种操作&#xff0c; 一元多项式的实现&#xff1a;用带表头结点的有序链表…

线性结构基本概念【数据结构】F

线性表的概念&#xff1a;线性表是一种最简单的线性结构&#xff0c;线性结构是单个数据元素的有序结合 线性结构的基本特征为&#xff1a; 第一&#xff0c;集合中必存在唯一的一个第1元素&#xff0c; 第二&#xff0c;集合中必存在唯一的一个最后元素&#xff0c; 第三&am…

leetcode589. N叉树的前序遍历

给定一个 N 叉树&#xff0c;返回其节点值的前序遍历。 例如&#xff0c;给定一个 3叉树 : 返回其前序遍历: [1,3,5,6,2,4]。 思路&#xff1a;先放入自己&#xff0c;再依次遍历孩子。 /* // Definition for a Node. class Node {public int val;public List<Node> c…

ORA-00001 违反唯一约束条件

程序跑出下面的异常&#xff1a;com.ibm.websphere.ce.cm.DuplicateKeyException: ORA-00001: 违反唯一约束条件 (EOMS3.SYS_C0024492)&#xff0c;参考下面的文章了解到我的程序可能是序列的问题。&#xff08;果然是序列产生的最小值设置的太小&#xff0c;将序列值设置大之后…

顺序结构实现【数据结构】

虽然在数据结构当中是先出现的线性表&#xff0c;然后出现的是数组 一&#xff1a;线性表的顺序存储结构 顺序映象&#xff1a;用一组地址连续的存储单元依次存放线性表当中的数据元素 线性表的起始地址&#xff1a;线性存储第一个数据元素的地址&#xff0c;我们也称作是基地址…

leetcode590. N叉树的后序遍历

给定一个 N 叉树&#xff0c;返回其节点值的后序遍历。 例如&#xff0c;给定一个 3叉树 : 思路&#xff1a;先遍历所有孩子&#xff0c;再放入自己。 /* // Definition for a Node. class Node {public int val;public List<Node> children;public Node() {}public No…