为什么80%的码农都做不了架构师?>>>   

TreeMap 内部定义了一个类  static final class Entry<K,V> implements Map.Entry<K,V>,(自平衡红黑二叉树)作为数据存储节点。

put方法先判断根节点是否为空,为空则在跟节点放置数据。

不为空,(调用比较器)将put的key循环比较parent节点的key,并动态修改parent的指向。最终存入数据。

然后fixAfterInsertion 自平衡调整,过程务必会涉及到红黑树的左旋、右旋、着色三个基本操作

红黑树的5点规定

1、每个节点都只能是红色或者黑色

2、根节点是黑色

3、每个叶节点(NIL节点,空节点)是黑色的。

4、如果一个结点是红的,则它两个子节点都是黑的。也就是说在一条路径上不能出现相邻的两个红色结点。

5、从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

转载于:https://my.oschina.net/sbcagf/blog/782878

java Collection-Map 之 TreeMap相关推荐

  1. Java Review - 集合框架=Collection+Map

    文章目录 概述 容器 = Collection + Map Collection Set TreeSet HashSet LinkedHashSet List ArrayList Vector Lin ...

  2. java之Map和Collection

    java中保存对象的容器可分为两类: 1.Map.Map是以键值对的形式来保存一组对象,可以通过键来查找值. 2.Collection.用来保存独立对象的序列.Collection又可分为三种类型: ...

  3. Java中Map用法详解

    原文地址http://blog.csdn.net/guomutian911/article/details/45771621 原文地址http://blog.csdn.net/sunny2437885 ...

  4. Java Collection

    在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序猿操作成批的数据或对象元素极为方便.这些接口和类有非常多对抽象数据类型操作的API,而这是我们经常使用的且在 ...

  5. Map,HashMap,TreeMap

    1. Map Map接口中,键和值一一映射,可以通过键来获取值. 在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做val ...

  6. Java数据结构Map遍历和排序

    map结构和list结合很好用,基本的遍历和排序每次都要查一下,用的不熟练,这里汇总下map的基本遍历和排序,参考的代码如下: package com.vip;import java.util.Arr ...

  7. Java - Collection

    Collection层次结构 Collection [plain] view plaincopy print? 子接口 Set,List 集合中只能放置对象的引用,不能放置原生数据类型, 我们需要使用 ...

  8. Java集合框架:TreeMap

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  9. java 遍历map获取下标_java 遍历Map并且获取其中的键值

    import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.M ...

  10. java中map的遍历方法_Java中Map的三种遍历方式

    集合中的三种遍历方式,如下代码: import java.util.Collection; import java.util.HashMap; import java.util.Iterator; i ...

最新文章

  1. Apple Pay及其背后的安全技术
  2. [VC]WindowProc和DefWindowProc函数
  3. 递归算法 流程图_什么是算法?如何学习算法?算法入门
  4. 『数据库』朴实无华且枯燥的数据库文章--关系数据理论
  5. 她说程序员不懂浪漫,生日宴上惨变单身狗,其实,程序员的浪漫你不懂!
  6. css hacks (ie6,ie7,ie8,firefox,Chrome)
  7. leetcode 45 python
  8. python语言写九九乘法表_怎么使用Python语言写一个九九乘法表?
  9. jquery 如何插入元素
  10. 最短路之floy算法
  11. mysql 主从_mysql主从复制异常中断分析处理
  12. Qt 基于Google引擎的拼音输入法
  13. iphone免越狱!使用filza修改设备型号!支持最高ios14.3
  14. NLP实验一:形式语言和自动机
  15. 用PROTUES来演示80C51的的16MHZ晶振的示波器演示
  16. 堆料堆不出电视头部玩家
  17. 计算机考研需要分数线,计算机考研分数线是多少?
  18. 因为没有使用有效的安全证书进行签名,该内容已被屏蔽。
  19. 判断点线位置(结构)
  20. 论文网站及使用方法(ResearchGate、Sci-Hub等)

热门文章

  1. 怎么帮java转换成类图_有把java代码直接转成uml类图的工具吗 – 手机爱问
  2. c语言10000以内的质数,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...
  3. 虚拟机访问svn服务器超时_SVN卡顿原因及简单修复方法
  4. 《深入理解Java虚拟机》(第二版)学习1:JVM的内存划分
  5. 【基础知识】win10常用快捷键
  6. 【java】暑期需要复习的操作
  7. Linux内核 题目,《Linux内核完全注释》部分习题答案
  8. 对AFNetworking的简单封装
  9. 小程序给视频加默认图片封面,点击播放视频并停止播放上一个视频
  10. js把for循环出来的数据存入数组