更多精彩文章。java
《Linux生產環境上,最經常使用的一套「vim「技巧》api
Linux五件套之類的。安全
哈哈,生活須要樂子,有趣學習麼!扯蛋文,來源於現實,若有雷同,純屬故意。更多關注《小姐姐味道》微信公衆號:xjjdog,不僅是扯蛋。
條條大路通羅馬,羅馬就是TreeMap。
第一面試官:java的集合類都有哪些?
答:回答list,set,map巴拉巴拉。
第一面試官:HashMap的內部結構是什麼樣的?
答:回答數組鏈表紅黑樹巴拉巴拉。
第一面試官:那HashMap是能夠排序的麼?
答:好行不能哎,由於它都叫hash了。
第一面試官:那java中可排序的Map有哪些?
答:不知道。
第一面試官:我瞭解你了,你能夠回去了。
第一面試官:redis用過麼?
答:sure
第一面試官:redis都有哪些數據結構?
答:5種基本的,四種不經常使用的巴拉巴拉。
第一面試官:等等,你說的zset是什麼?
答:有序的set,能夠作排行榜用什麼的。
第一面試官:它底層什麼結構?
答:咱們只說最多見的,就是個跳錶。
第一面試官:java中相似的Set有沒有?
答:不太清楚呢。
第一面試官:我瞭解你了,你能夠回去了。
第一面試官:你用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 就是該紅黑樹的一個節點。
第一面試官:你明天能夠來上班了。
我就是想知道TreeMap是紅黑樹,這麼簡單的答案還要我教你麼?我就是中國第一TreeMap面試官,這就是我過去的故事。