数据结构
文章平均质量分 92
魏小言
BAT资深工程师,Cloud Native 拥护者,敏捷实践者,坚守开发一线打磨工匠技艺的架构师。对基础架构和微服务有丰富的研究和实践。微信群请私信博主
展开
-
HashMap与TreeMap对比
排序:treemap有序数据结构:hashMap:hash桶+链表+红黑树treeMap:红黑树时间复杂度:hashMap:Array 快 常量treeMap:树 相对慢 lgN内存占用:HashMap因为要保存一个Array,所以会造成空间的浪费。TreeMap只保存要保持的节点,所以占用的空间比较小。性能:HashMap如果出现hash冲突的话,效率会变差,不过在java 8进行TreeNode转换之后,效率有很大的提升。TreeMap在添加和删除节点的时候会进行重排序,会对原创 2020-12-17 10:28:23 · 444 阅读 · 0 评论 -
栈和队列的相互转换替代
面试的常见问题:1. 两个栈实现队列//前提已知:struct Stack{ int top; //栈顶指针 int stacksize;//栈的大小 int *s; //栈底指针};void InitStack(Stack *s);void Push(Stack *s, int k);int Pop(*s);int IsStackEmpt转载 2017-09-27 13:54:01 · 459 阅读 · 0 评论 -
Lock和Synchronized的比较
之前看到在并发中的currentHashMap和HashTable,两者都是线性安全的,但其实现却不同;currentHashMap底层通过java.util.concurrent.locks包的lock实现同步,针对共享数据进行加锁;HashTable通过synchronized关键字对代码块进行实现同步;这里对lock和synchronized进行详细的比较。 比较之前,说一下他们的共同目的:原创 2017-10-08 15:39:04 · 446 阅读 · 0 评论 -
enumerator迭代器和Iterator迭代器浅述
怎么突然想起这个主题了呢?是在浏览关于HashMap和HashTable的相关性能的时候,了解到他们的迭代机制不同,就深入探讨一下。HashMap和HashTable 主要区别是:线程安全、速度、迭代器;前两个区别之前的博客描述过,这里只讨论迭代器: 上源码: Enumeration是一个接口,它的源码如下:package java.util;public interface Enu...原创 2018-04-22 18:50:34 · 1484 阅读 · 1 评论