数据结构
jeffrey_ding
java开发攻城狮
展开
-
HashMap的工作原理
HashMap的工作原理HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。Concurrent...转载 2019-01-11 17:42:20 · 168 阅读 · 0 评论 -
HashMap 排序
我们都是HashMap的值是没有顺序的,他是按照key的HashCode来实现的。对于这个无序的HashMap我们要怎么来实现排序呢?通过keySet()获取Map集合的所有键的Set集合,由List集合获取其中所有元素,通过比较器对元素为键的List集合进行排序/** * HashMap排序 * @author dingzan * */public class HashMapS...原创 2018-12-28 18:25:41 · 296 阅读 · 0 评论 -
HashMap、Hashtable、ConcurrentHashMap的原理与区别
本文转载于 http://www.yuanrengu.com/index.php/2017-01-17.htmlHashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize*2+1 ...转载 2019-01-14 14:19:42 · 148 阅读 · 0 评论 -
HashMap底层源码分析
JDK1.7中HashMap底层实现原理一、数据结构HashMap中的数据结构是数组+单链表的组合,以键值对(key-value)的形式存储元素的,通过put()和get()方法储存和获取对象。(方块表示Entry对象,横排表示数组table[],纵排表示哈希桶bucket【实际上是一个由Entry组成的链表,新加入的Entry放在链头,最先加入的放在链尾】,)二、实现原理...转载 2019-04-08 11:12:57 · 394 阅读 · 0 评论 -
数据结构中常见的树(BST二叉搜索树、RBT红黑树、B-树、B+树、mysql索引实现原理)
BST树即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如: BST树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关...转载 2019-04-23 15:39:40 · 580 阅读 · 0 评论 -
数组和链表的区别
为什么数组查询比链表要快?而插入删除比链表效率低问:为什么数组查询比链表要快?而插入删除比链表效率低已知: 1、数据存储结构分为顺序存储、链接存储、索引存储、散列存储。 2、数组属于顺序存储,用一段连续的内存位置来存储。 3、链表属于链接存储,用一组任意的存储单元来存储,不要求物理上相邻。抽象: 1、顺序存储可以想象成吃饭排队,每个人领的号都是按顺序来...原创 2019-04-23 16:02:27 · 285 阅读 · 0 评论