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


    Map

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

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

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

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

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

    使用的是 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)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    方法解释
    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> 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<>();
    
    • 1
    • 2

    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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    List的类型

    在这里插入图片描述

  • 相关阅读:
    pat_basic_1013 数素数
    软件设计师——信息安全知识
    QT+OSG/osgEarth编译之三十六:Protobuf+Qt编译(一套代码、一套框架,跨平台编译,版本:Protobuf-21.2)
    基于机器学习之模型树短期负荷预测(Matlab代码实现)
    行情黯淡的新财季,中概股的确定性在哪里?
    网络工程师入门必懂华为认证体系,附系统学习路线分享
    YAML 语法简介与 C# 操作示例
    某车联网App 通讯协议加密分析(三) Trace Block
    boundary IoU 的计算方式
    《Python3 网络爬虫开发实战》:高效实用的 MongoDB 文档存储
  • 原文地址:https://blog.csdn.net/weixin_40553780/article/details/133151315