02 2019 档案
JDK8 BigDecimal API-创建BigDecimal源码浅析三
摘要:第三篇 先介绍以BigInteger为构造参数的构造器 接下来介绍以int类型为构造参数的构造器 long类型参数的构造器分析 BigDecimal的原码接下来是一堆的静态方法用于创建BigDecimal对象,几乎没有什么需要分析的,很简单大家可以自己看一看
阅读全文
JDK8 BigDecimal API-创建BigDecimal源码浅析二
摘要:第二篇,慢慢来 根据指数调整有效小数位数 解析字符数组中的指数表达式 BigDecimal的构造方法,这些构造包含推荐使用的以String为构造参数的方法最终调用的都是上篇文章所分析的以字符数组为参数的构造器 接下来看一下其它构造器,这些其实都不是推荐使用的构造器 计算BigInteger的十进制位
阅读全文
BigDecimal源码
摘要:获取long类型整数的长度算法,看了好久 获取long类型数值在二进制下最高非0位左侧的0所占的位数 获取指定BigInteger对象中的值 以十进制进行舍入(做除法进行舍入多余的有效数字)
阅读全文
JDK8 HashMap--getTreeNode()获取红黑树指定key的节点
摘要:1 /*获取红黑树的指定节点*/ 2 final TreeNode<K,V> getTreeNode(int h, Object k) { 3 return ((parent != null) ? root() : this).find(h, k, null);// 从根节点开始查询 4 } 5 6
阅读全文
JDK8 HashMap--removeNode()移除节点方法
摘要:1 /*删除节点*/ 2 final Node<K,V> removeNode(int hash, Object key, Object value, 3 boolean matchValue, boolean movable) { 4 Node<K,V>[] tab; Node<K,V> p; i
阅读全文
JDK8 HashMap--treeify()树形化方法
摘要:1 /*创建红黑树*/ 2 final void treeify(Node[] tab) { 3 TreeNode root = null;// 定义红黑树根节点root 4 for (TreeNode x = this, next; x != null; x = next) {// 循环,定义x:循环变量,代表当前节点、nex...
阅读全文
JDK1.8 HashMap--treeifyBin()方法
摘要:1 /*树形化*/ 2 final void treeifyBin(Node<K,V>[] tab, int hash) { 3 int n, index; Node<K,V> e;// 定义n:节点数组长度、index:hash对应的数组下标、e:用于循环的迭代变量,代表当前节点 4 if (ta
阅读全文
二叉查找树ADT
摘要:二叉查找树ADT 定义:是一个二叉树,其中每一个节点的值大于左子树的所有值而小于右子树的所有值 平衡二叉树:平衡是指一个二叉树的任何节点的深度均不得过深 AVL树 定义:是一个二叉查找树,每个节点的左子树与右子树的高度差最多为1,AVL树的结构变化(添加或者删除元素可以通过旋转调整),从新满足AVL
阅读全文
队列ADT
摘要:队列 队列是FIFO表,使用队列时在队尾(rear)插入元素,称之为入队(enqueue),以及在对头(front)删除并返回元素值,称之为出队(dequeue). 任何表的实现都可以用于实现队列结构,链表实现比较简单;数组实现其中可以使用循环数组结构,即入队时在数组队列中前端不满,后端已经满了,则
阅读全文
树
摘要:前言 二叉查找树(binary search tree)的绝大部分操作的平均时间为O(logN),性能比较好 树的相关概念 递归定义:一个树由一些节点组成的集合(可以为空),若不为空,则树由根节点与零个或多个子树组成.因此树是由N个节点与N-1条边组成的结构,除根节点外其他节点均存在一条有方向的边(
阅读全文
浙公网安备 33010602011771号