Map<K,V>的使用和List学习

news2025/1/13 9:27:27

Map

Map是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。对于静态类型的查找来说,一般直接遍历或者用二分查找【不会对区间进行插入和删除操作】

而在现实生活中的查找比如:

  • 根据姓名查询考试成绩
  • 通讯录,即根据姓名查询联系方式
  • 不重复集合,即需要先搜索关键字是否已经在集合中

注:Map最重要的特性就是去重!
当我们平常在做题时,遇到删除重复数据,或者找每个数据重复的此时等…都可以用Map来解决

Map是一个接口类,该类没有继承自Collection,该类中存储的是<K,V>结构的键值对,并且K一定是唯一的,不能重复。

<K,V>使用的是 key-value模型:
key-value 模型中 key 和 value 是一个整体,就类似于 我们一提起齐天大圣,就想起孙悟空。key-value模型就是类似于这样的一组组合。【key 和 value 互相修饰】

Map中的Value可以使一个链表形式,也就是List类型,这样就可以存储多个数据。这就牵扯到了Map添加时遇到key值重复的数据的处理方法!!!

if (mutableMap.containsKey((dataBuf[i] and 0xff.toByte()).toInt())) {
	var locationList =
		mutableMap[(dataBuf[i] and 0xff.toByte()).toInt()] as MutableList<Int>
	locationList.add(checkSignals(i))
} else {
	val locationList: MutableList<Int> = mutableListOf()
	locationList.add(checkSignals(i))
	mutableMap.put((dataBuf[i] and 0xff.toByte()).toInt(), locationList)
}
方法解释
V get(Object key)返回 key 对应的 value
V getOrDefault(Object key, V defaultValue)返回 key 对应的 value,key 不存在,返回默认值
V put(K key, V value)设置 key 对应的 value
V remove(Object key)删除 key 对应的映射关系
Set keySet()返回所有 key 的不重复集合
Collection values()返回所有 value 的可重复集合
Set<Map.Entry<K, V>> entrySet()返回所有的 key-value 映射关系
boolean containsKey(Object key)判断是否包含 key
boolean containsValue(Object value)判断是否包含 value

Map是接口类,不能实例化对象,所以只能实例化其实现类TreeMap或者HashMap

Map<String,Integer> map = new TreeMap<>();
Map<String,Integer> map = new HashMap<>();

List

Java创建List的几种方法

//1.通过 new ArrayList<>() 
List <类型> 名称 = new ArrayList<>();
EG: List<String> stringList = new ArrayList<>();
//2. 通过Arrays.asList()
List<String> stringList = Arrays.asList("1", "2", "3");
//3.通过hutool工具类collectionUtil创建 
List<String> stringList = CollectionUtil.newArrayList("1", "2", "3");

hutool 依赖
  <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>4.5.7</version>
 </dependency>
junit 依赖
<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <!-- 不设置scope就是全局-->
            <scope>test</scope>
//4.List的创建
private var testList : List<Int>? = null
</dependency>

List的类型

在这里插入图片描述

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

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

相关文章

RISC-V Reader 笔记(七)RV64,特权架构,未来可选扩展

RV64 比起 RV32&#xff0c;其实扩展不多。 主要是添加了一系列字&#xff0c;双字为单位的操作。 各个 ISA 32 64比较 x86&#xff1a;变量都存在寄存器里&#xff0c;不像 32 存在内存里&#xff0c;因此指令数少很多&#xff0c;但是因此添加了很多新操作码来操作更多的寄…

ctfshow web入门(2)

web11 打开这个网站&#xff0c;到网站诊断分析模块 搜索域名 web12 提示 有时候网站上的公开信息&#xff0c;就是管理员常用密码 打开&#xff0c;就是个购物网站 因为昨天刚做robots.txt 我就搜了一下 真的有&#xff0c;提示admin这个页面 访问一下&#xff0c;userna…

PTE阅读写作讲解

目录 FIB-R和FIB-R想要拿到65分以上的正确率要达到百分之75以上 1.通过因果关系猜词 2.通过同义词和反义词的关系猜词 3.通过定义或释义关系来推测词义 WE 只需要背一个万能模版就可以了&#xff08;160&#xff09; 只需要保证语法正确就可以了 文本中的实词不能出现第…

阿里云视频点播服务视频地址浏览器打开失效问题记录

我这边的视频都是存储到阿里云视频点播服务中,访问方式都是移动端通过api接口访问视频.现在需要从浏览器直接访问,上传视频成功之后,可以正常打开,但是过段时间地址就显示无法访问,具体显示内容为: 很明显,是视频地址失效了,以下是处理方式: 1.修改视频关联的存储桶读取权限,修…

1334. 阈值距离内邻居最少的城市

1334. 阈值距离内邻居最少的城市 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a;DijkstraDijkstra_小顶堆Floyd_martix方法 原题链接&#xff1a; 1334. 阈值距离内邻居最少的城市 https://leetcode.cn/problems/find-the-city-with-th…

排序算法的奥秘:JAVA中的揭秘与实现

冒泡排序(Bubble Sort)是一种简单的排序算法&#xff0c;它通过多次迭代比较和交换相邻的元素来排序一个数组。每次迭代&#xff0c;较大的元素会逐渐"冒泡"到数组的末尾。以下是Java中实现冒泡排序的示例代码&#xff1a; public class BubbleSort { public sta…

【数据结构】链表的学习和介绍

前言 今天&#xff0c;我们来学习&#xff0c;数据结构中的链表 链表是什么 链表&#xff0c;就是多个结构体变量之间&#xff0c;通过结构体指针连接在一起的一种数据结构 提示&#xff1a; 本篇文章主要讲解动态链表&#xff0c;对于静态链表不做过多介绍 链表的分类 链…

ESP8266 WiFi物联网智能插座—硬件功能

目录 1、控制器板 2、采集器板 2.1、电源设计 2.2、控制器设计 2.3、电量采集电路设计 2.4、按键和LED指示灯设计 ESP8266 WiFi物联网智能插座的硬件功能主要包括两部分&#xff1a;控制器板和采集器板。 焊接成品效果如下图所示&#xff1a; 1、控制器板 控制器板是ES…

PAT 1029 旧键盘

PAT 1029 旧键盘 题目描述思路讲解代码展示 题目描述 思路讲解 分析&#xff1a;用string的find函数&#xff5e;遍历字符串s1&#xff0c;当当前字符s1[i]不在s2中&#xff0c;它的大写也不在ans中时&#xff0c;将当前字符的大写放入ans中&#xff0c;最后输出ans字符串即可…

阿里巴巴商品详情接口

阿里巴巴商品详情接口是阿里巴巴API接口的一种&#xff0c;可获取到商品链接、商品ID、商品标题、商品价格、品牌名称、店铺昵称、sku规格、sku属性、发货地、详情属性、店铺信息等参数&#xff0c;接口对接可适用于选品上架、数据分析、代购商城建站、erp系统商品数据选品、价…

怒刷LeetCode的第10天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一&#xff1a;两次拓扑排序 第二题 题目来源 题目内容 解决方法 方法一&#xff1a;分治法 方法二&#xff1a;优先队列&#xff08;Priority Queue&#xff09; 方法三&#xff1a;迭代 第三题 题目来源 题目内容…

浙江大学《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许

浙江大学《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许

Vulnhub系列靶机-Infosec_Warrior1

文章目录 Vulnhub系列靶机-Infosec_Warrior11. 信息收集1.1 主机扫描1.2 端口扫描1.3 目录爆破 2. 漏洞探测3. 漏洞利用4. 权限提升 Vulnhub系列靶机-Infosec_Warrior1 1. 信息收集 1.1 主机扫描 arp-scan -l1.2 端口扫描 nmap -A -p- 192.168.188.191发现22端口和80端口是…

数据结构和算法(8):搜索树(二叉搜索树和AVL树)

查找 所谓的查找或搜索&#xff0c;指从一组数据对象中找出符合特定条件者&#xff0c;这是构建算法的一种基本而重要的操作。其中的数据对象&#xff0c;统一地表示和实现为 词条&#xff08;entry&#xff09; 的形式&#xff1b;不同词条之间&#xff0c;依照各自的 关键码…

C++之类和函数权限访问总结(二百二十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

软件的开发步骤,需求分析,开发环境搭建,接口文档 ---苍穹外卖1

目录 项目总览 开发准备 开发步骤 角色分工 软件环境 项目介绍 产品原型 技术选型 开发环境搭建 前端:默认已有 后端 使用Git版本控制 数据库环境搭建 前后端联调 ​登录功能完善 导入接口文档 使用swagger​ 和yapi的区别 常用注解 项目总览 开发准备 开发步骤…

用tkinter+selenium做一个CSDN热榜爬虫

文章目录 UI设计函数封装功能实现 自从学会了分析热榜&#xff0c;就是CSDN热榜分析&#xff0c;每天都要爬下来分析一下热榜都在干什么。但脚本运行到底还是不方便&#xff0c;所以接下来就想办法将其做成一个带有界面的热榜爬虫 UI设计 做一个热榜爬虫的交互式界面&#xf…

IOS版微信8.0.42正式版已推出:新增多语言“翻译”!

微信最近的更新的真的很快&#xff0c;包括Mac、iPhone、PC端以及安卓版本都进行了更新推送。 微信iOS 8.0.42正式版已经向公众开放&#xff0c;这个新版本在原有功能的基础上&#xff0c;对群管理界面、翻译功能、小程序等方面进行了优化和改进&#xff0c;让用户的使用体验更…

嵌入式Linux--进程间通信--共享内存

1. 回顾之前的通信内容&#xff1a; 进程间通信主要有5种通信方式 1、无名管道&#xff08;只能单向发送或接收&#xff09; 2、命名管道&#xff08;同上&#xff09; 3、消息队列&#xff08;可以发送&#xff0c;也能接收消息&#xff09; 4、共享内存&#xff08;有一块公…

呼叫中心系统角色功能的应用

呼叫中心系统拥有强大的功能&#xff0c;根据角色不同能够使用的功能也是不同的&#xff0c;按规则是角色权限越大&#xff0c;可以使用的功能也越多。如普通坐席最重要的工作就是接打电话&#xff0c;没必要使用全部功能&#xff0c;只需有几个话务相关功能就足够了&#xff0…