数据结构
niu_8865
这个作者很懒,什么都没留下…
展开
-
注意!BigDecimal为什么不精准了呢?
我们在刚学习java基础的时候我们就了解到涉及到金额等操作不要使用浮点数double,floal,而需要使用BigDecimal,我们先看看java核心卷一的警告:看到书中的解释我们知道了浮点数不精准的主要原因是因为二进制无法精准的表示我们所说说的浮点数。大家想要详细了解二进制的小数转换问题可以看下这篇博客:https://blog.csdn.net/lzb348110175/article/details/119957903了解了不能用浮点数,我们使用BigDecimal总是没问题了吧大家看下原创 2021-08-31 14:33:42 · 346 阅读 · 0 评论 -
HashMap1.7和1.8的区别以及为什么他们是线程不安全的
HashMap1.7和1.8的区别首先数据结构上来看,1.7的HashMap是采用的数组+链表的数据结构,1.8采用的是数组加链表或者红黑树。那么为什么1.8要做在这个改变呢?红黑树虽然本质上是一棵二叉查找树,但它在二叉查找树的基础上增加了着色和相关的性质使得红黑树相对平衡,从而保证了红黑树的查找、插入、删除的时间复杂度最坏为O(log n)。加快检索速率。从这个特性我们可以得出,其实主要还是为了加快我们查找数据的时间。那么又会有人问,什么时候是红黑树什么时候是链表呢,在jdk1.8的规定里面是在6的时候原创 2020-09-14 09:33:13 · 875 阅读 · 0 评论 -
深度优先和广度优先算法(例题)
在LeetCode上面刷题刷到一道二叉树的题,这道题我认为对学习树的深度优先和广度优先算法有一定的帮助,先来看一下题这道题是这样的:给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。这道题有两种思路一种是深度优先一种是广度优先深度优先见名知意这种思路就是先从深度遍历,我们先去往深处遍历,由于这道题是寻找每一层最右面的值,我们可以总是先访问右子树。...原创 2019-11-19 15:41:18 · 2354 阅读 · 0 评论 -
数据结构栈的增删改查
栈是一种先进后出的数据结构,栈有栈顶和栈底,开始没有数据的时候栈顶和栈底都是没有的(-1),后面加入数据加入最新的数据,都放到栈顶,最先放的那个数据放到栈底,实现栈的增加和删除都是在栈顶进行操作的。下面是简单实现压栈,出栈,读取栈顶数据的一段代码public class MyStack {Object stackArray[];int maxsize;int top;public My...原创 2019-09-19 10:36:51 · 660 阅读 · 0 评论