中国第一TreeMap面试官,诞生了

更多精彩文章。java

《微服务不是所有,只是特定领域的子集》面试

《“分库分表" ?选型和流程要慎重,不然会失控》redis

这么多监控组件,总有一款适合你vim

《Linux生产环境上,最经常使用的一套“vim“技巧》api

《使用Netty,咱们到底在开发些什么?》数组

Linux五件套之类的。安全

《Linux之《荒岛余生》(一)准备篇》微信

《Linux之《荒岛余生》(二)CPU篇》网络

《Linux之《荒岛余生》(三)内存篇》数据结构

《Linux之《荒岛余生》(四)I/O篇》

《Linux之《荒岛余生》(五)网络篇》

哈哈,生活须要乐子,有趣学习么!扯蛋文,来源于现实,若有雷同,纯属故意。更多关注《小姐姐味道》微信公众号:xjjdog,不仅是扯蛋。

条条大路通罗马,罗马就是TreeMap。

我从集合溜达过来

第一面试官:java的集合类都有哪些?

答:回答list,set,map巴拉巴拉。

第一面试官:HashMap的内部结构是什么样的?

答:回答数组链表红黑树巴拉巴拉。

第一面试官:那HashMap是能够排序的么?

答:好行不能哎,由于它都叫hash了。

第一面试官:那java中可排序的Map有哪些?

答:不知道。

第一面试官:我了解你了,你能够回去了。

我从redis的芬芳里奔出

第一面试官:redis用过么?

答:sure

第一面试官:redis都有哪些数据结构?

答:5种基本的,四种不经常使用的巴拉巴拉。

第一面试官:等等,你说的zset是什么?

答:有序的set,能够作排行榜用什么的。

第一面试官:它底层什么结构?

答:咱们只说最多见的,就是个跳表。

第一面试官:java中相似的Set有没有?

答:不太清楚呢。

第一面试官:我了解你了,你能够回去了。

只想谈Map

第一面试官:你用LinkedHashMap干什么用?

答:我用它作过简单的LRU。

第一面试官:它能根据Key排序么?

答:能够的吧,都作LRU了。

第一面试官:你没搞明白个人意思,我是说能够经过指定的规则排序么?

答:好像不能够哎。

第一面试官:那有没有可排序的Map?

答:我先把全部key放list里,而后sort这个list,而后遍历list输出。

第一面试官:我是问有没有现成的api。

答:不知道。

第一面试官:我了解你了,你能够回去了。

我从配置文件里走来

第一面试官:了解properties么?

答:了解,它继承了Hashtable,是线程安全的。

第一面试官:我问的是配置文件,你知道怎么翻译成yml么。

答:遍历解析,而后存在多层的hashmap中。

第一面试官:有没有更优雅的方式?好比存在树中。

答:我不太明白,你是指二叉树仍是红黑树?

第一面试官:你好像刚才谈到红黑树。java中有没有实现?

答:hashmap链表长度超过8好像就是红黑树。

第一面试官:还有没有其余的地方?

答:不知道。

第一面试官:我了解你了,你能够回去了。

我从多线程走来

第一面试官:知道线程安全的map么?

答:Hashtable吧,不过都推荐用ConcurrentHashMap。

第一面试官:线程安全的可排序的Map知道么?

答:ConcurrentSkipListMap吧。

第一面试官:额,还有其余方式么?

答:好像没有了吧。

第一面试官:你不会使用Collections.synchronizedMap改造TreeMap啊

答:...

第一面试官:我了解你了,你能够回去了。

我从分布式存储强行过来

第一面试官:怎么快速判断一个key再分布式存储中存在?

答:Bloom过滤器?

第一面试官:很不错,那怎么快速排序这些key呢?

答:使用索引最快吧。好比b+tree等。

第一面试官:要是我是coordinate节点,没有具体的存储怎么办?

答:那就再内存里排序。

第一面试官:java中有没有能够排序的这种集合?

答:ArrayList这种都是能够的啊。

第一面试官:拿到你还要把key数据再取一次么?不能放在Map里么?有没有可排序的Map?有现成的就方便的多啊。

答:我明白你的意思了。没有。

第一面试官:我了解你了,你能够回去了。

我就是想问

第一面试官:TreeMap了解么?

答:了解。树形的Map。

第一面试官:底层什么结构?

答:树和哈希。

第一面试官:什么树,什么Hash啊。讲的明白点。

答:TreeMap中的Tree,HashMap中的Hash啊。

第一面试官:你到底了解TreeMap么?

答:了解啊。就是树形的Map。

第一面试官:若是你没有其余问题,那你稍等一下。

怕怕的

第一面试官:TreeMap用在哪些场景?

答:这个我很清楚,不过我负责设计了公司的大部分技术架构,好久没有动代码了。

第一面试官:那你简单说下最基本的集合有哪些吧。

答:知道,好比TreeMap这种我就常常用。有几个同事使用的时候,掉进了几个陷阱,仍是我帮忙指出的。你有没有其余项目管理方面的问题?

第一面试官:等等等等,我对你说的陷阱问题很是的好奇,能简单介绍一下么?

答:这个也很是容易理解,一些不适合TreeMap的使用场景,是要避免去使用的。针对这些场景,咱们有idea的代码插件,还有solar这种工具进行代码扫描,发现也是很简单的。对了,您熟悉vscode么,我能够给你讲一下插件开发。

第一面试官:...我只想知道你到底了解TreeMap不。

答:我刚才不是说了么,TreeMap是基本集合的一种,有许多常见的陷阱。不过能够在项目管理中规避掉,这就是方法论的合理应用。

第一面试官:若是你没有其余问题,那你稍等一下。

你很幸运

第一面试官:知道java中可排序的Map有哪些么?

答:TreeMap。从内部结构来看,TreeMap 本质上就是一棵“红黑树”,而 TreeMap 的每一个 Entry 就是该红黑树的一个节点。

第一面试官:你明天能够来上班了。

End

我就是想知道TreeMap是红黑树,这么简单的答案还要我教你么?我就是中国第一TreeMap面试官,这就是我过去的故事。

相关文章
相关标签/搜索