2021-10-16 集合(set)与映射(map) 恋上数据结构笔记
文章目录
- 集合(Listset and Treeset)
- 集合时间复杂度分析
- Treeset的局限性
- 映射(Map)
- Map与Set
集合(Listset and Treeset)
概念:就是不存储重复元素的数据结构,可以通过动态数组或链表以及二叉搜索树实现,实现时主要在add方法做一个判断是否是已有元素即可,如果是重复元素,可以考虑用新的覆盖旧的,也可以什么都不干。如果是二叉搜索树实现,则所有接口功能都可以由二叉搜索树自己的函数实现
集合时间复杂度分析
链表实现集合:添加删除搜索都是O(n)
红黑树实现集合:添加删除搜索都是O(logn),效率大大提高
Treeset的局限性
虽然用链表或数组实现的listset性能比用红黑树实现的Treeset低很多,但是使用Treeset有一个前提条件,就是红黑树(二叉搜索树)里加进去的元素必须具有可比较性!而链表或数组就没有这种要求
映射(Map)
映射是一种数据结构,就类似现实生活中的字典,通过一个大写字母A,可以找到以A开头的一个元素。而映射就是通过Key找到一个Value,这个Key和Value都是我们自己定义的,但是注意每一个Key一定是唯一的。
而映射同样可以通过动态数组,链表,二叉树多种方式实现,我们把Key和Key对应的Value值一般存在同一个结点里
Map与Set
2021-10-16 集合(set)与映射(map) 恋上数据结构笔记相关推荐
- 《恋上数据结构第1季》映射 TreeMap,HashMap,LinkedHashMap
映射 Map Map的接口定义 Map.java 红黑树 RBTree 实现 TreeMap TreeMap 分析 哈希表实现 HashMap HashMap 升级为 LinkedHashMap 数据 ...
- 《恋上数据结构第1季》集合 ListSet、TreeSet、HashSet
集合(Set) 集合的接口定义 双向链表 LinkedList 实现 ListSet 红黑树 RBTree 实现 TreeSet TreeMap 实现 TreeSet HashMap 实现 HashS ...
- Day19-22 2021/10/13-16 JAVA贪吃蛇 全注释版
Day19-22 2021/10/13-16 贪吃蛇 帧:如果时间足够小 就是动画 键盘监听 定时器 Timer package snale; import javax.swing.*; /*** @ ...
- 2021年大数据常用语言Scala(二十二):函数式编程 映射 map
目录 映射 | map 用法 案例一 案例二 映射 map 集合的映射操作是将来在编写Spark/Flink用得最多的操作,是我们必须要掌握的.因为进行数据计算的时候,就是一个将一种数据类型转换为另 ...
- js中数据结构数组Array、映射Map、集合Set、对象、JSON
全栈工程师开发手册 (作者:栾鹏) js系列教程5-数据结构和算法全解 js中数据结构 js中原生自带的数据结构比较简单,主要有数组Array.映射Map.集合Set.我们可以根据这三个基本数据结构实 ...
- 1-6 集合\第7节 Collections工具类\第8节 Map集合
这里写自定义目录标题 P27418_Collections集合工具类的方法_addAll&shuffle P27519_Collections集合工具类的方法_sort(List) P2770 ...
- Python 最近两条好消息:①TIOBE排名超过C和Java②新版本发布3.10.0,还有今天刚发布的《What’s New in Python(2021.10.15)》
来自TIOBE的最新10月份统计数据显示,Python首次超越Java.JavaScript.C语言等,成为最受欢迎的编程语言.TIOBE过去20年一直在追踪编程语言的受欢迎程度,其数据来自于对25个 ...
- leetcode刷题记录2:进度64, 2021.10.23
文章目录 数组的度(题目编号697:[link](https://leetcode-cn.com/problems/degree-of-an-array/)) 二叉搜索树(题目编号700:[link] ...
- Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括: 第1部分 Map概括 第2部分 HashMap和Hashtable异同 第3部分 HashMap和WeakHashMap异 ...
最新文章
- Linux 内核,30 年C 语言将升级至 C11
- 读书笔记:人月神话的博客积极的心态读后感
- wxWidgets:添加控件
- 使用MVCPager做AJAX分页所需要注意的地方
- 突破100万年薪《多线程服务器端架构》
- mysql 5.6.22编译_saltstack全编译安装mysql5.6.22
- windows 显示苹果分区_基准测试数据显示苹果M1运行Windows的表现比微软自家硬件好上近一倍...
- 【NOI2004】【洛谷P1486】郁闷的出纳员(Splay写法)
- C - Copying Books (POJ - 1505)
- 文件大小超过配置限制(2560000),代码洞察功能不可用怎么办?
- uniapp区分不同平台
- CCNA学习指南 第七章 下载
- Java程序员年薪40W是什么水平?税前还是税后?
- Client-Initiated场景下的L2TP实验配置
- 5oSf6KeJ5Lul5ZCO5Y+v5Lul55SoYmFzZTY05Yqg5a+G6ZqP56yU
- Task01 文件处理与邮件自动化
- 美国大学计算机专业排名2014,2013-2014USNews美国大学计算机工程专业研究生排名...
- Java中随机数的产生
- E. Pencils and Boxes codeforces(思维+dp)
- php cookie 加密解密,php 使用base64加密、解密cookie的示例
热门文章
- php跳转隐藏url参数,.htaccess从URL中删除index.php并隐藏参数键
- Hyperledger Fabric 智能合约实战 (3) 安装fabric
- 深度探索C++ 对象模型(2)-类的对象的内存大小
- 设计模式--享元(Flyweight)模式
- 【django】配置MySQL数据库【3】
- ElemenUi搜索数据时如何重置输入框的内容
- 密码学基础知识(九)密钥管理
- linux 中ans 用法,JSON简介以及用法汇总
- JAVA_IO流四大家族(1)
- 来看看CDN网络安全防护的方案