1. 此前二叉搜索树相关的内容我们均假设可以把整个数据结构存储在计算机的内存中,但是如果数据量过大时,必须把数据结构放在磁盘上,导致大O模型不在适用。目前计算机处理器每秒至少可以执行5亿条指令,磁盘访问一次需要大概10ms,1s可访问100次左右;这就意味着一次磁盘访问相当于执行50万条指令。所以导致运行时间增长的主要就是因为磁盘访问次数,我们愿意为减少磁盘访问进行大量的计算。但是典型的二叉搜索树的高度为log2(N),查询一个数据就要进行log2(N)次比较,这无疑导致磁盘访问次数比较大,运行时间较长,所以针对数据持久化在磁盘上这一情形,出现了B树这一数据结构,从而减少磁盘访问次数。
 
2.阶为M的B树具有如下特性:
(1)数据项存储在树叶上;
(2)非叶节点存储直到M-1个关键字以指示搜索方向;关键字i代表子树i+1中的最小的关键字;
(3)树的根或者是树叶或者其儿子数在2到M之间;
(4)除根外,所有非叶结点的儿子数在[M/2]和M之间;
(5)所有的树叶都在相同的深度上并有[L/2]到L个数据项
 
3.TreeSet和TreeMap
TreeSet 不允许重复元素,各项有序,TreeMap关键字唯一,值不唯一,可以为null,不提供迭代器,因此要迭代需可以用三个方法(1)Set<KeyType> keySet()  (2)Collection<ValueType> values()  (3)Set<Map.Entry<keyType,ValuesType>> entrySet()
这两种数据结构均采用平衡二叉树来实现的。(自顶向下的红黑树)
 
HashMap 的映射方式采用hash函数,能够比TreeMap(支持按关键字排序)更快的映射到值,所以比TreeMap更快,但是不保证关键字的排序。
 

转载于:https://www.cnblogs.com/jetHu/p/8503803.html

B树和TreeSet与TreeMap相关推荐

  1. HashSet、TreeSet、TreeMap实现原理

    一.HashSet底层实现 HashSet实现了Set接口,不允许有重复元素,因为HashSet是基于HashMap实现的,HashSet中的元素都存放在HashMap的key上面,而value中的值 ...

  2. TreeSet and TreeMap

    转载自https://github.com/CarpenterLee/JCFInternals/blob/master/markdown/5-TreeSet%20and%20TreeMap.md#tr ...

  3. Java中集合相关案例(泛型通配符、Collections工具类、TreeSet、TreeMap、HashMap、HashSet和集合嵌套案例)

    集合 一.集合相关案例 1.泛型通配符案例 2.集合工具类(Collections工具类) 3.TreeSet和TreeMap案例 4.HashMap案例 5.HashSet案例 6.TreeSet案 ...

  4. java中的几种泛型类——HashSet、HashMap、TreeSet、TreeMap,遍历map,排序,HashTable比较

    HashSet HashSet<E>泛型类在数据组织上类似于数学上的集合,可以进行"交"."并"."差"等运算. HashSet ...

  5. Java集合Set、Map、HashSet、HashMap、TreeSet、TreeMap等

    1.Set和Map的关系: Set代表一种集合元素无序.不可重复的集合,Map代表一种由多个key-value对组成的集合. Set的集合继承体系: Map关系集合 Map集合的key特征:所有key ...

  6. Plotly绘制树状热力图(treemap)【Plotly实例教程】

    从DataFrame获取数据绘制 import plotly.express as px import pandas as pd#任意的多组列表 a = [5,8,16,32,64,128,256,2 ...

  7. java集合类深入分析之TreeMap/TreeSet篇

    2019独角兽企业重金招聘Python工程师标准>>> 简介 TreeMap和TreeSet算是java集合类里面比较有难度的数据结构.和普通的HashMap不一样,普通的HashM ...

  8. Java中TreeMap和TreeSet的底层实现

    TreeSet底层则采用NavigableMap这个接口来保存TreeSet集合,而实际上NavigableMap只是一个接口,实际上TreeSet还是用TreeMap来保存set元素. TreeSe ...

  9. HashMap,HashTable,TreeMap,HashSet,TreeSet

    注意:最好先看一下(三)中 树红黑树的数据结构分析,可以的话数组,链表的数据结构也先复习一下,这里默认你懂数组,链表 2.2 map Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对 ...

  10. java集合——树集(TreeSet)+对象的比较

    [0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--树集(TreeSet)+对象的比较 的相关知识: 0.2) for full ...

最新文章

  1. opencv 3.1编译 linux,Ubuntu 编译安装 OpenCV 3.1
  2. c free 使用MSDN library定制
  3. spring aop 注入源码解析 1
  4. ACM入门练习与递推小结
  5. 内网穿透 --- frp
  6. (王道408考研数据结构)第一章绪论-第一节:数据结构的基本概念、三要素、逻辑结构和物理结构
  7. 转一篇关于IIS用户权限的帖子
  8. 给VS2008中c#代码自动添加版权信息
  9. 网页视频之H5+Mse
  10. 使用Gson解析json
  11. Android iso文件打开,安卓手机iso文件用什么打开?
  12. 【python】小游戏程序——弹跳小球
  13. 私域流量运营部门员工团队KPI绩效管理考核方案计划表格
  14. ZOJ - 3939(日期规律)
  15. Oracle Distilled网站下的TimesTen相关帖子
  16. Vue中使用dayjs
  17. lammps教程:如何计算单个原子的体积
  18. 操作系统——2.并发与进程
  19. 外卖o2o三足鼎立回归理性,持久战要拼什么?
  20. 51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832数模转换实验(附参考代码及注释)

热门文章

  1. c++ 调用windows tts_有关调用约定的历史 – 第三部分
  2. 2022届秋招笔试题小结:图
  3. python中元组和列表的区别_Python 序列:列表、元组
  4. cscd论坛_高压电器第九届电工技术前沿问题学术论坛“先进电磁技术”分论坛及专题征稿...
  5. 去除面部黑色素小妙招_去除脸部黑色素7个小方法,值得收藏
  6. 箭头函数写法_初探ES6:箭头函数
  7. 2021-09-23图嵌入方法
  8. 倒排索引Inverted index
  9. 182.查找重复的电子邮箱
  10. 线性回归--深度学习