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

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值重复的数据的处理方法!!!

java 复制代码
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

java 复制代码
Map<String,Integer> map = new TreeMap<>();
Map<String,Integer> map = new HashMap<>();

List

Java创建List的几种方法

java 复制代码
//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的类型

相关推荐
Leinwin3 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
薛定谔的悦3 小时前
MQTT通信协议业务层实现的完整开发流程
java·后端·mqtt·struts
enjoy嚣士4 小时前
springboot之Exel工具类
java·spring boot·后端·easyexcel·excel工具类
罗超驿4 小时前
独立实现双向链表_LinkedList
java·数据结构·链表·linkedlist
盐水冰5 小时前
【烘焙坊项目】后端搭建(12) - 订单状态定时处理,来单提醒和顾客催单
java·后端·学习
Hello小赵5 小时前
视频压缩编码学习(一)—— 基础知识大集合
学习
凸头5 小时前
CompletableFuture 与 Future 对比与实战示例
java·开发语言
wuqingshun3141595 小时前
线程安全需要保证几个基本特征
java·开发语言·jvm
努力也学不会java6 小时前
【缓存算法】一篇文章带你彻底搞懂面试高频题LRU/LFU
java·数据结构·人工智能·算法·缓存·面试
攒了一袋星辰6 小时前
高并发强一致性顺序号生成系统 -- SequenceGenerator
java·数据库·mysql