Map集合

news/2024/7/5 2:51:49

一、概述

1、Map集合是一种双列集合,每个元素包含两个数据

2、Map集合的每个元素格式:Key  value

3、Map集合也被称为键值对集合

Map集合是键值对集合

Map集合非常适合做购物车这种业务场景

适应最对的Map集合时HashMap

二、Map集合体系的特点

1、Map集合的特点都是由键决定的

2、Map集合的键时无序的,不重复的,无索引的,值不做要求(可重复)

3、Map集合后面重复的键对应的值会覆盖前面重复键的值

4、Map集合的键值对都可以为null

三、Map集合实现类的特点

1、HashMap:元素按照键是无序,不重复,无索引,值不做要求(与Map体系一致)

2、LinkedHashMap:元素按照键是有序的,不重复的,无索引的,值不做要求

3、TreeMap:元素按照键是排序的,不重复的,无索引的

----------------------------------------------------------------------------------------------------------------

Map集合

Map是双列集合的祖宗接口,它的功能是全部双列集合都可以继承使用

 

一、Map集合的遍历方式

1、键找值

先获取Map集合的全部键的set集合

遍历键的set集合,然后把这些键放到一个单列集合中

(2)先把Map集合转换成Set集合,Set集合中每个元素都是键值对的实体类型

遍历Set集合,然后提取键以及提取值

 

(3)得益于JDK8开始的新技术,Lambda表达式,提供了一种更简单、更直接的遍历方式

 二、

1、HashMap的特点

(1)HashMap是Map里面的一个实现类,特点都是由键决定的,无序、不重复、无索引

(2)没有额外需要学习的特有方法,直接使用Map里面的方法就可以

(3)HashMap跟HashSet底层原理一样,都是哈希表结构,只是HashMap的每个元素包含两个值而已

实际上:Set系列集合的底层就是Map实现的,只是Set集合中的元素只要键数据,不需要值数据而已

2、HashMap的特点和底层原理

(1)由键决定、无序、不重复、无索引,HashMap底层是哈希表结构

(2)依赖HashcCode方法和equals方法保证键的唯一

(3)如果键要存储的是自定义对象,需要重写HashCode和equals方法

(4)基于哈希表,增删改查性能都比较好

3、TreeMap集合概述和特点

(1)由键决定,不重复,无索引,可排序

(2)可排序:按照键数据的大小,默认排序(从小到大),只能对键排序

注意:TreeMap集合是一定要排序的,可以默认排序,也可以按照指定的规则进行排序

(3)TreeMap和TreeSet原理一样

TreeMap集合自定义排序规则有两种:

(1)类实现Comparable接口,重写比较规则

(2)集合自定义Comparator比较器对象,重写比较规则

注意两者均出现时,遵循第二个定义的规则

 


http://lihuaxi.xjx100.cn/news/51967.html

相关文章

qsort函数模拟实现(利用冒泡函数实现)

文章目录1.qsort函数介绍2.模拟实现qsort函数2.1冒泡排序2.2使用回调函数,模拟实现qsort(采用冒泡的方式)3.一道排序题3.1解析1.qsort函数介绍 下面我们来看代码 int int_cmp(const void* p1, const void* p2) {return(*(int*)p1 - *(int*)p…

【数据结构与算法01】 算法的复杂度

文章目录时间复杂度的概念时间复杂度:常[1]、对[logn]、幂[n^2]、 指[2^n]、阶[n!]例题❗易错提醒空间复杂度🍔算法原地工作:算法所需的内存空间为常量例题时间复杂度的概念 例1:假设n3000n3000n3000 i2998,print("I love Yo…

head first java3

QA 为啥所有东西都在类中:Java面向对象,类是对象的蓝图,Java绝大多数都是对象 每个类都需要加一个main吗:一个程序中,一个就够 int x2;while(x) 对吗:错误,while中间是Boolean类型。boolean xtr…

java基于springboot+Vue+nodejs的高校运动会报名管理系统 element

运动是伴随人类一生的一种行为和活动,只有不断的运动才能够彰显生命的意义,尤其是当代的学生,课业繁重往往忽略了体育锻炼,为了能够提高学子们对体育运动的积极性,基本所有的高校每年都会定期的举办运动会。传统的运动…

MySQL入门学习笔记(上)

CSDN话题挑战赛第2期 参赛话题:学习笔记 个人主页:BoBooY的CSDN博客_Java领域博主 前言:本篇文章总结了 MySQL的入门知识点(上),希望通过 文字介绍 代码 图片的形式帮助大家快速掌握 MySQL入门知识点&…

什么是压缩算法及压缩算法定义

目录 一、什么是压缩算法 文件存储 二、压缩算法定义 一、什么是压缩算法 我想必都有过 压缩 和 解压缩 文件的经历,当文件太大时,我会使用文件压缩来降低文件的占用空间,比如微信上传文件的限制是100 MB,我这有个文件无法上传…

【设计模式】-创建型模式-第2章第3讲-【建造者模式】

目录 场景需求 1、建造者模式中包含以下4个类 2、实际代码示例 2.1、具体产品(Product)类 2.2、抽象建造者(Builder ) 2.3、具体建造者(ConcreteBuilder ) 2.4、指挥者(Director&#xff…

注册中心系列二:Consul的接入与使用

目录一、Consul原理与介绍1.介绍2.实现原理2.1serf2.2Raft3.consul agent参数三、Docker搭建集群版的Consul四、springcloud的接入方式1.依赖引入2.配置五、优缺点1.优点2.缺点一、Consul原理与介绍 1.介绍 consul主要有server和client两种组件组成。 server负责核心数据的存…